IoGetDevicePropertyData 関数 (wdm.h)
IoGetDevicePropertyData ルーチンは、デバイス プロパティの現在の設定を取得します。
構文
NTSTATUS IoGetDevicePropertyData(
[in] PDEVICE_OBJECT Pdo,
[in] const DEVPROPKEY *PropertyKey,
[in] LCID Lcid,
ULONG Flags,
[in] ULONG Size,
[out] PVOID Data,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
パラメーター
[in] Pdo
クエリ対象のデバイスの物理デバイス オブジェクト (PDO) へのポインター。
[in] PropertyKey
デバイス プロパティ キーを指定する DEVPROPKEY 構造体へのポインター。
[in] Lcid
ロケール識別子。 このパラメーターは、言語固有の LCID 値または LOCALE_NEUTRALに設定します。 LOCALE_NEUTRAL LCID は、プロパティが言語に依存しないことを指定します (つまり、どの言語にも固有ではありません)。 このパラメーターは 、LOCALE_SYSTEM_DEFAULT または LOCALE_USER_DEFAULTに設定しないでください。 言語固有の LCID 値の詳細については、「 LCID 構造体」を参照してください。
Flags
システムで使用するために予約されています。 ドライバーは、この値を 0 に設定する必要があります。
[in] Size
データが指すバッファーのサイズ (バイト単位)。
[out] Data
デバイス プロパティ データへのポインター。
[out] RequiredSize
Data で返されるプロパティ情報のサイズを受け取る ULONG へのポインター。 IoGetDevicePropertyData がSTATUS_BUFFER_TOO_SMALLを返す場合、呼び出し元はこの値を使用して、正しいサイズのバッファーを割り当てることができます。
[out] Type
DEVPROPTYPE 値へのポインター。 IoGetDevicePropertyData が正常に完了した場合、ルーチンは Type を使用して、データ バッファーに返されるデータの型を指定します。
戻り値
IoGetDevicePropertyData は NTSTATUS 値を返します。 このルーチンは、次のいずれかの値を返す場合があります。
リターン コード | 説明 |
---|---|
|
操作が成功しました。 データ バッファーには、取得されたデータが含まれます。 **Type* には、取得したデータの型が含まれます。 |
|
データ バッファーが小さすぎます。 **RequiredSize* には、必要なバッファー長が含まれています。 |
|
指定されたデバイス プロパティが見つかりませんでした。 |
注釈
カーネル モード ドライバーは 、IoGetDevicePropertyData ルーチンを使用して、統合デバイス プロパティ モデルの一部として定義されているデバイス プロパティを取得します。
このルーチンで使用できるプロパティの種類を確認するには、 のDEVPROP_TYPE_BYTE ページと隣接するページを DEVPROP_TYPE_*
参照してください。
ドライバーは、 IoSetDevicePropertyData ルーチンを使用して、デバイス プロパティを変更できます。
IoGetDevicePropertyData の呼び出し元は、システム スレッドのコンテキストで IRQL <= APC_LEVELで実行されている必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |