WdfDeviceInitSetPowerPolicyOwnership 関数 (wdfdevice.h)
[KMDF と UMDF に適用]
WdfDeviceInitSetPowerPolicyOwnership メソッドは、呼び出し元のドライバーが、指定されたデバイスの電源ポリシー所有者であるかどうかを確立します。
構文
void WdfDeviceInitSetPowerPolicyOwnership(
[in] PWDFDEVICE_INIT DeviceInit,
[in] BOOLEAN IsPowerPolicyOwner
);
パラメーター
[in] DeviceInit
WDFDEVICE_INIT構造体への呼び出し元が指定したポインター。
[in] IsPowerPolicyOwner
呼び出し元のドライバーが電源ポリシー所有者かどうかを示すブール値。 TRUE の場合、呼び出し元のドライバーは電源ポリシー所有者です。 FALSE の場合、電源ポリシー所有者ではありません。
戻り値
なし
解説
フレームワーク ベースの関数ドライバーを作成する場合、フレームワークによって電源ポリシー所有者としてドライバーが自動的に確立されます。 (デバイスが未加工モードで動作する場合、バス ドライバーは既定の電源ポリシー所有者です)。
既定の電源ポリシー所有者を変更するには、次の 2 つのドライバーで WdfDeviceInitSetPowerPolicyOwnership を呼び出す必要があります。
- 既定の電源ポリシー所有者は、IsPowerPolicyOwner をFALSE に設定して WdfDeviceInitSetPowerPolicyOwnership を呼び出す必要があります。
- 電源ポリシー所有者になるドライバーは、IsPowerPolicyOwner をTRUE に設定して WdfDeviceInitSetPowerPolicyOwnership を呼び出す必要があります。
各スタック内の 1 つのドライバーのみを電源ポリシー所有者にできます。そのため、IsPowerPolicyOwner が TRUE に設定された WdfDeviceInitSetPowerPolicyOwnership を呼び出すドライバーは 1 つだけであることを確認する必要があります。
ドライバーが WdfDeviceInitSetPowerPolicyOwnership を呼び出す場合は、 WdfDeviceCreate を呼び出す前に呼び出す必要があります。 詳細については、「 Framework デバイス オブジェクトの作成」を参照してください。
WdfDeviceInitSetPowerPolicyOwnership の呼び出しの詳細については、「Power Policy 所有権」を参照してください。
例
シリアル サンプル ドライバー のコード例を次に示します。 次の使用例は、レジストリ値を調べて、ドライバーを電源ポリシー所有者にする必要があるかどうかを判断します。 ドライバーを電源ポリシー所有者にしない場合、この例では WdfDeviceInitSetPowerPolicyOwnership を呼び出します。
//
// Call subroutine that checks a registry value.
//
SerialGetFdoRegistryKeyValue(
DeviceInit,
L"SerialRelinquishPowerPolicy",
&relinquishPowerPolicy
);
//
// If the registry value is TRUE, do not own power policy.
//
if(relinquishPowerPolicy) {
WdfDeviceInitSetPowerPolicyOwnership(
DeviceInit,
FALSE
);
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfdevice.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI コンプライアンス規則 | ChildDeviceInitAPI(kmdf)、 DeviceInitAPI(kmdf)、 DriverCreate(kmdf)、 FDOPowerPolicyOwnerAPI(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 PdoDeviceInitAPI(kmdf) |