次の方法で共有


IoQueryFullDriverPath 関数 (ntddk.h)

IoQueryFullDriverPath ルーチンは、指定したドライバー オブジェクトに対して読み込まれたバイナリ ファイルの完全なパス名を取得します。 Windows 10 バージョン 1709 以降では、呼び出し元は、呼び出し中にDRIVER_OBJECT構造が有効であることを確認するために適切な同期を使用している限り、独自のドライバー オブジェクトを照会できます。

構文

NTSTATUS IoQueryFullDriverPath(
  [in]  PDRIVER_OBJECT  DriverObject,
  [out] PUNICODE_STRING FullPath
);

パラメーター

[in] DriverObject

DRIVER_OBJECT 構造体へのポインター。 バージョン 1709 より前のバージョンの Windows 10 を実行しているコンピューターで IoQueryFullDriverPath 呼び出す場合、この構造体は呼び出し元のドライバーのドライバー オブジェクトである必要があります。

[out] FullPath

呼び出し元によって割り当てられた UNICODE_STRING 構造体へのポインター。 正常に戻った場合、この構造体にはパス名が含まれます。

戻り値

IoQueryFullDriverPath は、呼び出しによってパス名が正常にフェッチされた場合にSTATUS_SUCCESSを返します。 考えられるエラー戻り値には、次の状態コードが含まれます。

リターン コード 形容
STATUS_ACCESS_DENIED ターゲット ドライバー オブジェクトは、呼び出し元に属していません。 この状態コードは、1709 より前のバージョンの Windows 10 でのみ返されます。
STATUS_NOT_FOUND ドライバー オブジェクトには、セクション (読み込まれたメモリ イメージ) が関連付けまれていません。
STATUS_INSUFFICIENT_RESOURCES 要求された操作を実行するために使用できるリソースが不足しています。

備考

ドライバーは、このルーチンを呼び出して、バイナリ ファイルの完全なパス名を照会するか、Windows 10 バージョン 1709 以降では、別のドライバーのバイナリ ファイルの完全なパス名を照会できます。

呼び出し元は、FullPath パラメーターが指す UNICODE_STRING 構造体を割り当てますが、この構造体を初期化する必要はありません。 IoQueryFullDriverPath は、この構造体の元の内容が無効であると想定し、上書きします。 このルーチンは、ページングされたシステム メモリから文字列バッファーを割り当て、構造体の Buffer メンバーをこのバッファーを指すよう設定し、バッファーとその内容を記述するために、MaximumLength および Buffer メンバーを設定します。

呼び出し元は、完全なパス文字列が不要になったときに、FullPath >Bufferが指すストレージを解放する役割を担います。 通常、呼び出し元は、exFreePool などのルーチン呼び出すことによって、このストレージを解放します。

必要条件

要件 価値
サポートされる最小クライアント Windows 8.1 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

DRIVER_OBJECT

ExFreePool

UNICODE_STRING