Поделиться через


Функция ZwUnloadDriver (wdm.h)

Подпрограмма ZwUnloadDriver выгружает драйвер из системы. Используйте эту процедуру с особой осторожностью (см. раздел "Примечания " ниже).

Синтаксис

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

Параметры

[in] DriverServiceName

Указатель на подсчитываемую строку Юникода, указывающую путь к разделу реестра драйвера, \Registry\Machine\System\CurrentControlSet\Services\<DriverName>где DriverName — это имя драйвера.

Возвращаемое значение

ZwUnloadDriver возвращает STATUS_SUCCESS или значение NTSTATUS, например STATUS_INVALID_DEVICE_REQUEST.

Если драйвер, указанный в driverServiceName , не имеет подпрограммы обратного вызова DriverUnload в своей структуре DRIVER_OBJECT , ZwUnloadDriver возвращает STATUS_INVALID_DEVICE_REQUEST.

Комментарии

ZwUnloadDriver динамически выгружает драйвер устройства или файловой системы из текущей работающей системы. Не рекомендуется, чтобы драйвер сам по себе вызывал ZwUnloadDriver .

Драйвер фильтра файловой системы невозможно безопасно выгрузить из работающей системы. Таким образом, фильтр должен использовать только ZwUnloadDriver для целей отладки. Эта подпрограмма не должна вызываться в розничной версии фильтра.

Если DriverName — это имя драйвера устройства PnP, ZwUnloadDriver возвращает STATUS_INVALID_DEVICE_REQUEST и не выгружит драйвер.

Мини-фильтр должен использовать FltUnloadFilter вместо ZwUnloadDriver для выгрузки вспомогательного минифильтра.

Если вызов функции ZwUnloadDriver происходит в пользовательском режиме, следует использовать имя NtUnloadDriver вместо ZwUnloadDriver.

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

См. также раздел

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

Использование версий Nt и Zw собственных процедур системных служб