WdfDeviceAllocAndQueryProperty 関数 (wdfdevice.h)
[KMDF と UMDF に適用]
WdfDeviceAllocAndQueryProperty メソッドは、バッファーを割り当て、指定したデバイス プロパティを取得します。
構文
NTSTATUS WdfDeviceAllocAndQueryProperty(
[in] WDFDEVICE Device,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
[out] WDFMEMORY *PropertyMemory
);
パラメーター
[in] Device
フレームワーク デバイス オブジェクトへのハンドル。
[in] DeviceProperty
取得するデバイス プロパティを識別する DEVICE_REGISTRY_PROPERTY型指定された列挙子。
[in] PoolType
割り当てるメモリの種類を指定する POOL_TYPE型指定列挙子。
[in, optional] PropertyMemoryAttributes
関数が割り当てるメモリ オブジェクトのオブジェクト属性を記述する呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] PropertyMemory
フレームワーク メモリ オブジェクトへのハンドルを受け取る WDFMEMORY 型の場所へのポインター。
戻り値
操作が成功した場合、WdfDeviceAllocAndQueryProperty はSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
リターン コード | 形容 |
---|---|
|
指定した DeviceProperty 値が無効です。 |
|
デバイスのドライバーは、デバイスのプロパティをまだ報告していません。 |
このメソッドは、他NTSTATUS 値を返す場合があります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
備考
WdfDeviceAllocAndQueryProperty メソッドは、要求されたデバイス プロパティを保持するために必要なメモリの量を決定します。 データを保持するのに十分なメモリを割り当て、割り当てられたメモリを記述するフレームワーク メモリ オブジェクトにハンドルを返します。 データにアクセスするには、ドライバーは WdfMemoryGetBuffer 呼び出すことができます。
または、WdfDeviceAllocAndQueryPropertyEx を使用して、統合プロパティ モデルを介して公開されているデバイス プロパティにアクセスすることもできます。
例
次のコード例では、要求されたプロパティに対してフレームワークが作成するフレームワーク メモリ オブジェクトの属性を使用して、WDF_OBJECT_ATTRIBUTES 構造体を初期化します。 次に、この例では WdfDeviceAllocAndQueryProperty 呼び出して、DevicePropertyPhysicalDeviceObjectName プロパティを取得します。 WdfDeviceAllocAndQueryProperty 戻った後、ドライバーは WdfMemoryGetBuffer を呼び出して、名前文字列を含むバッファーへのポインターを取得できます。
WDF_OBJECT_ATTRIBUTES attributes;
NTSTATUS status;
WDFDEVICE device;
WDFMEMORY memory;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = device;
status = WdfDeviceAllocAndQueryProperty(device,
DevicePropertyPhysicalDeviceObjectName,
NonPagedPool,
&attributes,
&memory
);
if (!NT_SUCCESS(status)) {
return STATUS_UNSUCCESSFUL;
}
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfdevice.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
WdfDeviceQueryProperty の