WdfIoTargetAllocAndQueryTargetProperty 関数 (wdfiotarget.h)

[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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER またはSTATUS_INVALID_PARAMETER_2
指定された DeviceProperty パラメーターの値が無効でした。
STATUS_INVALID_DEVICE_REQUEST
デバイスのドライバーは、デバイスのプロパティをまだ報告していません。
 

このメソッドは、他の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)

こちらもご覧ください

DEVICE_REGISTRY_PROPERTY

POOL_TYPE

WDF_OBJECT_ATTRIBUTES

WdfDeviceAllocAndQueryProperty

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetQueryTargetProperty する

WdfMemoryGetBuffer