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

從先前呼叫 WdfDeviceGetIoTargetWdfIoTargetCreate 或從特製化 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。 否則,此方法可能會傳回下列其中一個值:

傳回碼 Description
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
                                                );

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
標頭 wdfiotarget.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
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