共用方式為


WdfFdoRetrieveNextStaticChild 函式 (wdffdo.h)

[僅適用於 KMDF]

WdfFdoRetrieveNextStaticChild 方法會擷取子裝置清單中下一個架構裝置物件的句柄。

語法

WDFDEVICE WdfFdoRetrieveNextStaticChild(
  [in]           WDFDEVICE Fdo,
  [in, optional] WDFDEVICE PreviousChild,
  [in]           ULONG     Flags
);

參數

[in] Fdo

代表父裝置之架構裝置物件的句柄。

[in, optional] PreviousChild

架構裝置物件的句柄,代表先前呼叫 WdfFdoRetrieveNextStaticChild 所傳回的子裝置。 對於第一次呼叫 WdfFdoRetrieveNextStaticChild,此值必須是 NULL

[in] Flags

WDF_RETRIEVE_CHILD_FLAGS型別列舉值,識別方法應該擷取的子裝置類型。 此參數不可為零。

傳回值

如果作業成功,方法會傳回架構裝置物件的句柄。 否則會傳回 NULL

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

備註

使用靜態總線列舉的總線驅動程式可以呼叫 WdfFdoRetrieveNextStaticChild

若要擷取子裝置清單中的專案,驅動程序應該:

  1. 呼叫 WdfFdoLockStaticChildListForIteration 來鎖定子清單。
  2. 重複呼叫 WdfFdoRetrieveNextStaticChild 來取得清單中的專案,一次一個,直到方法傳回 NULL 為止。
  3. 呼叫 WdfFdoUnlockStaticChildListFromIteration 以解除鎖定子清單。
如需靜態子清單的詳細資訊,請參閱 列舉總線上的裝置

範例

下列程式代碼範例會搜尋靜態子清單,直到找到序號符合特定值的子裝置為止。 如需 WdfFdoRetrieveNextStaticChild 的其他範例用法,請參閱 Toaster 範例總線驅動程式。

PPDO_DEVICE_DATA  pdoData;
WDFDEVICE  hChild;
NTSTATUS  status = STATUS_INVALID_PARAMETER;

WdfFdoLockStaticChildListForIteration(Device);

while ((hChild = WdfFdoRetrieveNextStaticChild(
                                               Device,
                                               hChild,
                                               WdfRetrieveAddedChildren
                                               )) != NULL) {
    //
    // Obtain device object context data and check the
    // stored serial number.
    //
    pdoData = PdoGetData(hChild);
    if (SerialNo == pdoData->SerialNo) {
        status = STATUS_SUCCESS;
        WdfPdoRequestEject(hChild);
        break;
    }
}
WdfFdoUnlockStaticChildListFromIteration(Device);

規格需求

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

另請參閱

WdfFdoLockStaticChildListForIteration

WdfFdoUnlockStaticChildListFromIteration