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

こちらもご覧ください

DEVPROPKEY

DEVPROPTYPE

IoSetDeviceInterfacePropertyData