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 例程的 NtXxx 和 ZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxx 和 ZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , PowerIrpDDis (wdm) |