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

こちらもご覧ください

DRIVER_OBJECT

ExFreePool

UNICODE_STRING