IoGetDeviceInterfacePropertyData 関数 (wdm.h)
IoGetDeviceInterfacePropertyData ルーチンは、デバイス インターフェイス プロパティの現在の値を取得します。
構文
NTSTATUS IoGetDeviceInterfacePropertyData(
[in] PUNICODE_STRING SymbolicLinkName,
[in] const DEVPROPKEY *PropertyKey,
[in] LCID Lcid,
ULONG Flags,
[in] ULONG Size,
[out] PVOID Data,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
パラメーター
[in] SymbolicLinkName
デバイス インターフェイス インスタンスを識別する文字列へのポインター。 この文字列は、IoGetDeviceInterfaces、IoGetDeviceInterfaceAlias、または IoRegisterDeviceInterface ルーチンの以前の呼び出しから取得されました。
[in] PropertyKey
デバイス インターフェイス プロパティ キーを含む DEVPROPKEY 構造体へのポインター。
[in] Lcid
ロケール識別子を指定します。 このパラメーターは、言語固有の LCID 値または LOCALE_NEUTRALに設定します。 LOCALE_NEUTRAL LCID は、プロパティが言語に依存しないことを指定します (つまり、どの言語にも固有ではありません)。 このパラメーターは 、LOCALE_SYSTEM_DEFAULT または LOCALE_USER_DEFAULTに設定しないでください。 言語固有の LCID 値の詳細については、「 LCID 構造体」を参照してください。
Flags
システムで使用するために予約されています。 ドライバーは、この値を 0 に設定する必要があります。
[in] Size
Data が指すバッファーのサイズをバイト単位で指定します。
[out] Data
ルーチンがデバイス インターフェイス プロパティ データを書き込む呼び出し元によって割り当てられたバッファーへのポインター。
[out] RequiredSize
IoGetDeviceInterfacePropertyData がプロパティ データの必要なサイズを書き込む ULONG 変数へのポインター。 ルーチンが成功した場合、必要なサイズ値は、 データ が指す出力バッファーにルーチンが書き込むバイト数です。 ルーチンがSTATUS_BUFFER_TOO_SMALLを返す場合、必要なサイズ値は、呼び出し元がこのプロパティ値に割り当てるバッファーのサイズです。
[out] Type
DEVPROPTYPE 変数へのポインター。 IoGetDeviceInterfacePropertyData がプロパティ データを正常に取得した場合、ルーチンはプロパティ型の値をこの変数に書き込みます。 この値は、 データ バッファー内にあるプロパティ データの種類を示します。
戻り値
IoGetDeviceInterfacePropertyData は、成功した場合STATUS_SUCCESSを返します。 考えられるエラーの戻り値には、次の状態コードが含まれます。
リターン コード | 説明 |
---|---|
STATUS_BUFFER_TOO_SMALL | Data が指すバッファーが小さすぎてプロパティ データを格納できません。 *RequiredSize には、必要なバッファー長が含まれています。 |
STATUS_UNSUCCESSFUL | 指定された LCID 値が無効です。 |
STATUS_NOT_IMPLEMENTED | 指定されたプロパティはサポートされていません。 |
注釈
カーネル モード ドライバーは 、IoGetDeviceInterfacePropertyData ルーチンを使用して、統合デバイス プロパティ モデルの一部として定義されている デバイス インターフェイス プロパティを取得します。 デバイス インターフェイスのプロパティの詳細については、「 デバイスのプロパティ」を参照してください。
ドライバーは、 IoSetDeviceInterfacePropertyData ルーチンを使用して、デバイス インターフェイス プロパティを変更できます。
IoGetDeviceInterfacePropertyData の呼び出し元は、システム スレッドのコンテキストで IRQL = PASSIVE_LEVELで実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |