共用方式為


WdfChildListRetrievePdo 函式 (wdfchildlist.h)

[僅適用於 KMDF]

WdfChildListRetrievePdo 方法會傳回與子清單中指定子描述相關聯的架構裝置物件的句柄。

語法

WDFDEVICE WdfChildListRetrievePdo(
  [in]      WDFCHILDLIST             ChildList,
  [in, out] PWDF_CHILD_RETRIEVE_INFO RetrieveInfo
);

參數

[in] ChildList

子清單物件的句柄。

[in, out] RetrieveInfo

驅動程式配置的 WDF_CHILD_RETRIEVE_INFO 結構的指標,驅動程式會使用要擷取之子系的 識別描述 初始化。

傳回值

如果指定的子裝置位於子清單中,則 WdfChildListRetrievePdo 會傳回架構裝置物件的句柄;如果子裝置的架構裝置物件存在,以及架構已向 PnP 管理員回報裝置是否存在,則為 。 否則,方法會傳回 NULL。 架構會在 WDF_CHILD_RETRIEVE_INFO 結構的 Status 成員中傳回其他狀態資訊。

如果驅動程式提供無效的物件句柄,就會發生系統錯誤檢查。

備註

在呼叫 WdfChildListRetrievePdo 之前,驅動程式必須將識別描述放在 WDF_CHILD_RETRIEVE_INFO 結構中。

WdfChildListRetrievePdo 方法會周遊指定的子清單,尋找標識符描述符合驅動程式在WDF_CHILD_RETRIEVE_INFO結構中提供的子系。 如果架構找到相符專案,而且子系有 位址描述,架構就會填入結構的位址描述。

請務必使用 WdfChildListBeginIterationWdfChildListEndIteration 包裝此呼叫,以保護呼叫端免於在另一個線程上突然移除 PDO 的 PnP。

如需子清單的詳細資訊,請參閱 動態列舉

範例

下列程式代碼範例會搜尋子清單,尋找標識符描述包含指定序號的子裝置,並取得代表子裝置之裝置物件的句柄。

WDF_CHILD_LIST_ITERATOR iterator;
PDO_IDENTIFICATION_DESCRIPTION description;
WDF_CHILD_RETRIEVE_INFO info;
WDFDEVICE hChild;

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT(
                                                 &description.Header,
                                                 sizeof(description)
                                                 );

description.SerialNo = DeviceSerialNumber;

WDF_CHILD_RETRIEVE_INFO_INIT(
                             &info,
                             &description.Header
                             );

WDF_CHILD_LIST_ITERATOR_INIT(&iterator, WdfRetrieveAllChildren);
WdfChildListBeginIteration(childList, &iterator);

hChild = WdfChildListRetrievePdo(
                                 childList,
                                 &info
                                 );

... access hChild ...

WdfChildListEndIteration(childList, &iterator);

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdfchildlist.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER_INIT

WDF_CHILD_RETRIEVE_INFO

WDF_CHILD_RETRIEVE_INFO_INIT