ZwOpenSymbolicLinkObject 関数 (wdm.h)
ZwOpenSymbolicLinkObject ルーチンは、既存のシンボリック リンクを開きます。
構文
NTSYSAPI NTSTATUS ZwOpenSymbolicLinkObject(
[out] PHANDLE LinkHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
パラメーター
[out] LinkHandle
シンボリック リンク オブジェクトへのハンドルを受け取る HANDLE 変数へのポインター。
[in] DesiredAccess
オブジェクトへの要求されたアクセスを決定する ACCESS_MASK 値を指定します。 呼び出し元は通常、 ZwQuerySymbolicLinkObject にハンドルを渡すことができるように、GENERIC_READ指定します。
[in] ObjectAttributes
オブジェクト名とその他の属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 InitializeObjectAttributes を使用して、この構造体を初期化します。 呼び出し元がシステム スレッド コンテキストで実行されていない場合は、 InitializeObjectAttributes を呼び出すときにOBJ_KERNEL_HANDLE属性を設定する必要があります。
戻り値
ZwOpenSymbolicLinkObject は、成功または適切なエラー状態のSTATUS_SUCCESSを返します。
注釈
LinkHandle が指すハンドルが使用されなくなったら、ドライバーは ZwClose を呼び出して閉じる必要があります。
呼び出し元がシステム スレッド コンテキストで実行されていない場合は、作成するハンドルがプライベート ハンドルであることを確認する必要があります。 それ以外の場合は、ドライバーが実行されているコンテキスト内のプロセスによってハンドルにアクセスできます。 詳細については、「 オブジェクト ハンドル」を参照してください。
ZwOpenSymbolicLinkObject 関数の呼び出しがユーザー モードで行われる場合は、"ZwOpenSymbolicLinkObject" ではなく"NtOpenSymbolicLinkObject" という名前を使用する必要があります。
NtOpenSymbolicLinkObject と ZwOpenSymbolicLinkObject は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。 Windows カーネルの NtOpenSymbolicLinkObject ルーチンは、カーネル モード ドライバーから直接アクセスできません。 ただし、カーネル モード ドライバーは、 ZwOpenSymbolicLinkObject ルーチンを呼び出すことによって、このルーチンに間接的にアクセスできます。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx バージョンと ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |