zwUnloadDriver 函数 (wdm.h)

ZwUnloadDriver 例程从系统卸载驱动程序。 请谨慎使用此例程 (请参阅下面的“ 备注 ”部分) 。

语法

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

参数

[in] DriverServiceName

指向计数 Unicode 字符串的指针,该字符串指定驱动程序的注册表项的路径, \Registry\Machine\System\CurrentControlSet\Services\<DriverName>其中 DriverName 是驱动程序的名称。

返回值

ZwUnloadDriver 返回STATUS_SUCCESS或错误 NTSTATUS 值,例如STATUS_INVALID_DEVICE_REQUEST。

如果在 DriverServiceName 中指定的驱动程序在其DRIVER_OBJECT结构中未设置 DriverUnload 回调例程,则 ZwUnloadDriver 将返回STATUS_INVALID_DEVICE_REQUEST。

注解

ZwUnloadDriver 从当前运行的系统动态卸载设备或文件系统驱动程序。 不建议驱动程序自行调用 ZwUnloadDriver

无法安全地从正在运行的系统卸载文件系统筛选器驱动程序。 因此,筛选器应仅将 ZwUnloadDriver 用于调试目的。 它不应在筛选器的零售版本中调用此例程。

如果 DriverName 是 PnP 设备驱动程序的名称, 则 ZwUnloadDriver 返回STATUS_INVALID_DEVICE_REQUEST且不会卸载驱动程序。

微筛选器应使用 FltUnloadFilter 而不是 ZwUnloadDriver 来卸载支持的微筛选器。

如果在用户模式下调用 ZwUnloadDriver 函数,则应使用名称“NtUnloadDriver”而不是“ZwUnloadDriver”。

对于来自内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

使用本机系统服务例程的 Nt 和 Zw 版本