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 結構 狀態 成員中傳回其他狀態資訊。
如果驅動程式提供無效的物件句柄,就會發生系統錯誤檢查。
言論
在呼叫 WdfChildListRetrievePdo之前,驅動程式必須在 WDF_CHILD_RETRIEVE_INFO 結構中放置識別描述。
WdfChildListRetrievePdo 方法會周遊指定的子清單,尋找具有識別描述的子系,其符合WDF_CHILD_RETRIEVE_INFO結構中提供的驅動程式。 如果架構找到相符專案,而且子系具有 位址描述,則架構會填入結構的位址描述。
請務必使用 WdfChildListBeginIteration 和 WdfChildListEndIteration 來包裝此呼叫,以保護呼叫者免於在另一個線程上突然移除 PDO。
如需子清單的詳細資訊,請參閱 動態列舉。
例子
下列程式代碼範例會搜尋子清單,以尋找標識元描述包含指定序號的子裝置,並取得代表子裝置之裝置物件的句柄。
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);
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.0 |
標頭 | wdfchildlist.h (包括 Wdf.h) |
連結庫 | Wdf01000.sys (請參閱架構連結庫版本控制。) |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |