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
Header wdfiotarget.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
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