[KMDF と UMDF に適用]
WdfFdoInitAllocAndQueryProperty メソッドはバッファーを割り当て、指定したデバイス プロパティを取得します。
構文
NTSTATUS WdfFdoInitAllocAndQueryProperty(
[in] PWDFDEVICE_INIT DeviceInit,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
[out] WDFMEMORY *PropertyMemory
);
パラメーター
[in] DeviceInit
ドライバーが EvtDriverDeviceAdd コールバック関数から取得した WDFDEVICE_INIT 構造体 ポインター。
[in] DeviceProperty
取得するデバイス プロパティを識別する DEVICE_REGISTRY_PROPERTY型指定された列挙子値。
[in] PoolType
割り当てるメモリの種類を指定する POOL_TYPE型指定された列挙子値。
[in, optional] PropertyMemoryAttributes
WdfFdoInitAllocAndQueryProperty が割り当てるメモリ オブジェクトのオブジェクト属性を記述 する呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] PropertyMemory
フレームワーク メモリ オブジェクトへのハンドルを受け取る WDFMEMORY 型の場所へのポインター。
戻り値
操作が成功した場合、メソッドはSTATUS_SUCCESSを返します。 その他の戻り値は次のとおりです。
| リターン コード | 説明 |
|---|---|
|
指定した DeviceProperty 値が無効です。 |
|
WDFDEVICE_INIT 構造体は、ドライバーの EvtDriverDeviceAdd コールバック関数から取得されませんでした。 |
このメソッドは、他の NTSTATUS 値返す場合もあります。
注釈
ドライバーは、WdfDeviceCreate 呼び出す前に、WdfFdoInitAllocAndQueryProperty を呼び出す必要があります。 WdfDeviceCreate 呼び出す方法の詳細については、「フレームワーク デバイス オブジェクトの作成」を参照してください。
WdfDeviceCreate 呼び出した後、ドライバーは、WdfDeviceAllocAndQueryPropertyを呼び出すことによって、デバイスのプロパティ情報を取得できます。
WdfFdoInitAllocAndQueryProperty メソッドの詳細については、「Function Driverでのデバイス オブジェクトの作成」を参照してください。
または、WdfFdoInitAllocAndQueryPropertyEx を使用して、統合プロパティ モデルを通じて公開されているデバイス プロパティにアクセスすることもできます。
例示
次のコード例では、WdfFdoInitAllocAndQueryProperty 呼び出して、デバイスのセットアップ クラスの名前を含むフレームワーク メモリ オブジェクトへのハンドルを取得します。 次に、この例 WdfMemoryGetBuffer を呼び出して、セットアップ クラス名の Unicode 文字列を含むバッファーへのポインターを取得します。
NTSTATUS status = STATUS_SUCCESS;
PVOID pMemoryBuffer = NULL;
WDFMEMORY memory = NULL;
status = WdfFdoInitAllocAndQueryProperty(
DeviceInit,
DevicePropertyClassName,
NonPagedPool,
WDF_NO_OBJECT_ATTRIBUTES,
&memory
);
if(NT_SUCCESS(status)){
pMemoryBuffer = WdfMemoryGetBuffer(
memory,
NULL
);
}
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | 普遍 |
| 最小 KMDF バージョン | 1.0 |
| UMDF の最小バージョン を する | 2.0 |
| ヘッダー | wdffdo.h (Wdf.h を含む) |
| 図書館 | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
| IRQL | PASSIVE_LEVEL |
| DDI コンプライアンス規則 を する | DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
こちらもご覧ください
WdfDeviceAllocAndQueryProperty の
WdfFdoInitQueryProperty の