次の方法で共有


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型指定された列挙子値。 このパラメーターを 0 にすることはできません。

戻り値

操作が成功した場合、メソッドはフレームワーク デバイス オブジェクトにハンドルを返します。 それ以外の場合は、null 返します。

ドライバーが無効なオブジェクト ハンドルを提供すると、システム バグ チェックが発生します。

注釈

静的バス列挙を使用するバス ドライバーは、WdfFdoRetrieveNextStaticChild 呼び出すことができます。

子デバイスの一覧の項目を取得するには、ドライバーは次の手順を実行する必要があります。

  1. WdfFdoLockStaticChildListForIteration 呼び出して、子リストをロックします。
  2. WdfFdoRetrieveNextStaticChild を繰り返し呼び出して、メソッドが NULL 返すまで、リスト内の項目を一度に 1 つずつ取得します。
  3. WdfFdoUnlockStaticChildListFromIteration 呼び出して、子リストのロックを解除します。
静的な子リストの詳細については、「バス上のデバイスの列挙」を参照してください。

例示

次のコード例では、特定の値に一致するシリアル番号を持つ子デバイスが見つかるまで、静的な子リストを検索します。 WdfFdoRetrieveNextStaticChildのその他の使用例については、トースター サンプル バス ドライバーを参照してください。

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);

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.0
ヘッダー wdffdo.h (Wdf.h を含む)
図書館 Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf)

こちらもご覧ください

WdfFdoLockStaticChildListForIteration

WdfFdoUnlockStaticChildListFromIteration