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 | 要求された操作を実行するために使用できるリソースが不足しています。 |
注釈
ドライバーは、このルーチンを呼び出して、バイナリ ファイルの完全なパス名を照会したり、バージョン 1709 以降Windows 10別のドライバーのバイナリ ファイルの完全パス名を照会したりできます。
呼び出し元は、FullPath パラメーターが指すUNICODE_STRING構造体を割り当てますが、この構造体を初期化する必要はありません。 IoQueryFullDriverPath は、この構造体の元の内容が無効であると想定し、上書きします。 このルーチンは、ページングされたシステム メモリから文字列バッファーを割り当て、構造体の Buffer メンバーをこのバッファーをポイントするように設定し、バッファーとその内容を記述する MaximumLength メンバーと Buffer メンバーを設定します。
フル パス文字列が不要になった場合、呼び出し元は FullPath-Buffer> が指すストレージを解放する役割を担います。 通常、呼び出し元は ExFreePool などのルーチンを呼び出すことによって、このストレージを解放します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |