ZwQuerySymbolicLinkObject 関数 (wdm.h)

ZwQuerySymbolicLinkObject ルーチンは、シンボリック リンクのターゲットを含む Unicode 文字列を返します。

構文

NTSYSAPI NTSTATUS ZwQuerySymbolicLinkObject(
  [in]            HANDLE          LinkHandle,
  [in, out]       PUNICODE_STRING LinkTarget,
  [out, optional] PULONG          ReturnedLength
);

パラメーター

[in] LinkHandle

クエリを実行するシンボリック リンク オブジェクトを処理します。 このハンドルは、 ZwOpenSymbolicLinkObject の正常な呼び出しによって作成されます。

[in, out] LinkTarget

シンボリック リンクのターゲットを受け取る初期化された Unicode 文字列へのポインター。

[out, optional] ReturnedLength

には、 LinkTarget の Unicode 文字列にコピーする最大バイト数が含まれます。 出力時に、符号なし長整数には、シンボリック リンクのターゲットに名前を付ける Unicode 文字列の長さが含まれます。

戻り値

ZwQuerySymbolicLinkObject は、エラーなしでルーチンが完了したことを示すSTATUS_SUCCESSを返すか、 LinkTarget で指定された Unicode 文字列が小さすぎて返された文字列を保持しない場合はSTATUS_BUFFER_TOO_SMALLを返します。

注釈

このルーチンを呼び出す前に、ドライバー ライターは 、LinkTarget の Unicode 文字列が正しく初期化され、文字列のバッファーが割り当てられていることを確認する必要があります。 Unicode 文字列の MaximumLength メンバーと Buffer メンバーは 、ZwQuerySymbolicLinkObject を呼び出す前に設定する必要があります。または、呼び出しが失敗します。

ZwQuerySymbolicLinkObject が返STATUS_BUFFER_TOO_SMALL場合、ドライバーは ReturnedLength で返される値を調べる必要があります。 この変数で返される数値は、シンボリック リンクのターゲットの Unicode 文字列の最大長を示します。

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

カーネル モード ドライバーからの呼び出しの場合、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)

こちらもご覧ください

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

ZwOpenSymbolicLinkObject