[KMDF にのみ適用]
WdfIoTargetAllocAndQueryTargetProperty メソッドは、バッファーを割り当て、指定した I/O ターゲットの指定したデバイス プロパティを取得します。
構文
NTSTATUS WdfIoTargetAllocAndQueryTargetProperty(
[in] WDFIOTARGET IoTarget,
[in] DEVICE_REGISTRY_PROPERTY DeviceProperty,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES PropertyMemoryAttributes,
[out] WDFMEMORY *PropertyMemory
);
パラメーター
[in] IoTarget
WdfDeviceGetIoTarget または WdfIoTargetCreate を する以前の呼び出しまたは特殊な I/O ターゲットが提供するメソッドから取得されたローカルまたはリモートの I/O ターゲット オブジェクトへのハンドル。
[in] DeviceProperty
取得するデバイス プロパティを識別する DEVICE_REGISTRY_PROPERTY型指定された値。
[in] PoolType
割り当てるメモリの種類を指定する POOL_TYPE型指定された値。
[in, optional] PropertyMemoryAttributes
関数が割り当てるメモリ オブジェクトのオブジェクト属性を記述する呼び出し元によって割り当てられた WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] PropertyMemory
フレームワーク メモリ オブジェクトへのハンドルを受け取る WDFMEMORY 型の場所へのポインター。
戻り値
WdfIoTargetAllocAndQueryTargetProperty 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
| リターン コード | 説明 |
|---|---|
|
指定された DeviceProperty パラメーターの値が無効でした。 |
|
デバイスのドライバーは、デバイスのプロパティをまだ報告していません。 |
このメソッドは、他のNTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
WdfIoTargetAllocAndQueryTargetProperty メソッドは、要求されたデバイス プロパティを保持するために必要なメモリの量を決定します。 このメソッドは、データを保持するのに十分なメモリを割り当て、割り当てられたメモリを記述するフレームワーク メモリ オブジェクトにハンドルを返します。 データにアクセスするには、ドライバーは WdfMemoryGetBuffer 呼び出すことができます。
WdfIoTargetAllocAndQueryTargetProperty の詳細については、「一般的な I/O ターゲットに関する情報の取得」を参照してください。
I/O ターゲットの詳細については、「I/O ターゲットの使用」を参照してください。
例示
次のコード例では、WdfIoTargetAllocAndQueryTargetProperty を呼び出して、DevicePropertyFriendlyName プロパティを取得します。 WdfIoTargetAllocAndQueryTargetProperty 戻った後、ドライバーは WdfMemoryGetBuffer 呼び出して、名前文字列を含むバッファーへのポインターを取得できます。
WDFMEMORY targetName;
NTSTATUS status;
status = WdfIoTargetAllocAndQueryTargetProperty(
Target,
DevicePropertyFriendlyName,
NonPagedPool,
WDF_NO_OBJECT_ATTRIBUTES,
&targetName
);
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | 普遍 |
| 最小 KMDF バージョン | 1.0 |
| ヘッダー | wdfiotarget.h (Wdf.h を含む) |
| 図書館 | Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。 |
| IRQL | PASSIVE_LEVEL |
| DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
こちらもご覧ください
WdfDeviceAllocAndQueryProperty の
WdfDeviceGetIoTarget の
WdfIoTargetCreate の
WdfIoTargetQueryTargetProperty を する
WdfMemoryGetBuffer の