次の方法で共有


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. メソッドが NULL を返すまで、WdfFdoRetrieveNextStaticChild を繰り返し呼び出して、リスト内の項目を一度に 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
Header wdffdo.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 PdoDeviceInitAPI(kmdf)

こちらもご覧ください

WdfFdoLockStaticChildListForIteration

WdfFdoUnlockStaticChildListFromIteration