WdfFdoInitAllocAndQueryProperty 関数 (wdffdo.h)
[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 メソッドの詳細については、「関数ドライバーでのデバイス オブジェクトの作成」を参照してください。
または、 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 |
Header | wdffdo.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DeviceInitAPI(kmdf)、 DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |