ZwUnloadDriver 関数 (wdm.h)

ZwUnloadDriver ルーチンは、システムからドライバーをアンロードします。 このルーチンは細心の注意を払って使用してください (下記の 「備考 」セクションを参照してください)。

構文

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

パラメーター

[in] DriverServiceName

ドライバーのレジストリ キー \Registry\Machine\System\CurrentControlSet\Services\<DriverName>へのパスを指定するカウントされた Unicode 文字列へのポインター 。 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を返し、ドライバーをアンロードしません。

ミニフィルターでは、ZwUnloadDriver の代わりに FltUnloadFilter を使用して、サポートされているミニフィルターをアンロードする必要があります。

ZwUnloadDriver 関数の呼び出しがユーザー モードで行われる場合は、"ZwUnloadDriver" ではなく "NtUnloadDriver" という名前を使用する必要があります。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用