次の方法で共有


WdfPdoInitRemovePowerDependencyOnParent 関数 (wdfpdo.h)

WdfPdoInitRemovePowerDependencyOnParent メソッドは、「解説」 セクションで説明されている電力の依存関係を削除します。

構文

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

パラメーター

DeviceInit

WDFDEVICE_INIT 構造体へのポインター。

戻り値

なし

注釈

一般に、フレームワークでは、子デバイスが D0 に入る前に親バス ドライバーが D0 デバイスの電源状態に入り、同様に親が D0 を離れる前に子デバイスが D0 を終了する必要があります。

ただし、子デバイスが実際のハードウェアを表さない仮想デバイスである場合は特に、この動作は望ましくない可能性があります。 S0 アイドル時の電源ダウンでは、子デバイスの電源状態が親に関連しない可能性があります。 実際、子デバイスには、S0 アイドル検出を実行する理由がない可能性があります。 この場合、親デバイスは、子デバイスの電源状態に依存するのではなく、I/O アクティビティに基づいて D0 と Dx の間を遷移することをお勧めします。

電源の依存関係を削除すると、バス ドライバーに次の影響があります。

  • 親デバイスが Dx にある間、PDO PnP/Power コールバックが実行される場合があります。
  • 親デバイスが Dx にある間、PDO enable/disable-wake-at-bus コールバックが実行される場合があります。
  • バス ドライバーが Dx にある間に、PDO 上の電源管理キューから (PDO が電源ポリシー所有者であると仮定して) FDO 上の非電源管理キューに転送される要求がディスパッチされる可能性があります。
  • 子スタックは、親スタックとは別に電源状態遷移を実行します。 これには、子スタックが S-IRP を受け取り、親スタックが独自の D-IRP の処理を完了する前に D-IRP の処理を完了する可能性がある、高速再開などのシナリオが含まれます。

電源の依存関係を削除するために、バス ドライバーは、子デバイスの PDO 作成するときに WdfPdoInitRemovePowerDependencyOnParent を呼び出すことができます。

親バス ドライバーが親デバイス スタックの電源ポリシー所有者でない場合、この関数はアクションを実行しません。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 2004
最小 KMDF バージョン 1.29
ヘッダー wdfpdo.h (Wdf.h を含む)
図書館 Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL