Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция IoCreateDriverProxyExtension выделяет и инициализирует расширение DriverProxy, которое обеспечивает функциональность драйвера с горячей заменой.
Синтаксис
NTSTATUS IoCreateDriverProxyExtension(
PDRIVER_OBJECT OwningDriverObject,
DRIVER_PROXY_EXTENSION_CREATION_FLAGS Flags,
PDRIVER_PROXY_EXTENSION *DriverProxyExtension
);
Параметры
OwningDriverObject
[in, необязательный] Необязательный указатель на DRIVER_OBJECT , который будет принадлежать расширению DriverProxy. Если это указано, расширение будет связано с этим объектом драйвера. Если значение NULL, расширение создается без собственного драйвера.
Flags
[in] Значение DRIVER_PROXY_EXTENSION_CREATION_FLAGS , которое предоставляет дополнительные параметры конфигурации для создания расширения. В настоящее время флаги не определены, поэтому этот параметр должен иметь значение 0.
DriverProxyExtension
[out] Указатель на переменную, которая получает указатель на только что созданное расширение DriverProxy. Это расширение можно использовать с другими API DriverProxy.
Возвращаемое значение
IoCreateDriverProxyExtension возвращает одно из следующих значений NTSTATUS:
| Код возврата | Description |
|---|---|
| STATUS_SUCCESS | Расширение было успешно выделено и инициализировано. |
| STATUS_NOT_SUPPORTED | Текущая система не поддерживает расширения DriverProxy. |
| STATUS_DRIVER_BLOCKED | Указанный драйвер исключен из операций DriverProxy с помощью параметров реестра. |
| STATUS_INSUFFICIENT_RESOURCES | Недостаточно памяти было доступно для выделения расширения. |
| STATUS_RESOURCE_IN_USE | Указанный объект драйвера уже владеет расширением DriverProxy. |
Замечания
Расширение DriverProxy требуется для любого драйвера, который хочет использовать функции Driver Hot-Swap. Расширение служит непрозрачным маркером, который содержит все соответствующие сведения DriverProxy и включает операции горячей замены.
Драйверы, использующие драйвер Hot-Swap, должны создать расширение DriverProxy во время DriverEntry, предпочтительно рано в начале функции. Рекомендуется сохранить результат в глобальной переменной для простого доступа на протяжении всего времени существования драйвера.
Перед вызовом IoCreateDriverProxyExtension драйверы должны вызвать IoGetDriverProxyFeatures , чтобы убедиться, что функция DriverProxy доступна и включена.
Каждый объект драйвера может принадлежать не более одного расширения DriverProxy. Если объект драйвера уже имеет связанное расширение, функция возвращает STATUS_RESOURCE_IN_USE.
В драйвере Hot-Swap версии 2 после успешного создания расширения оболочки конечных точек автоматически доступны без явного вызова регистрации. Компилятор и компоновщик автоматически создают сведения о конечной точке во время процесса сборки.
Система автоматически управляет жизненным циклом расширения DriverProxy. При выгрузке объекта драйвера расширения автоматически очищается.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| Header | wdm.h |
| Library | NtosKrnl.lib |
| IRQL | PASSIVE_LEVEL |
См. также
IoGetDriverProxyWrapperFromEndpoint
IoGetDriverProxyExtensionFromDriverObject