Función WdfDeviceInitSetPowerPolicyOwnership (wdfdevice.h)
[Se aplica a KMDF y UMDF]
El método WdfDeviceInitSetPowerPolicyOwnership establece si el controlador que realiza la llamada es, o no, el propietario de la directiva de energía para un dispositivo especificado.
Sintaxis
void WdfDeviceInitSetPowerPolicyOwnership(
[in] PWDFDEVICE_INIT DeviceInit,
[in] BOOLEAN IsPowerPolicyOwner
);
Parámetros
[in] DeviceInit
Puntero proporcionado por el autor de la llamada a una estructura WDFDEVICE_INIT.
[in] IsPowerPolicyOwner
Valor booleano que indica si el controlador de llamada es el propietario de la directiva de energía. Si TRUE, el controlador de llamada es el propietario de la directiva de energía. Si FALSE, no es el propietario de la directiva de energía.
Valor devuelto
Ninguno
Observaciones
Si va a escribir un controlador de funciones basado en marcos, el marco establece automáticamente el controlador como propietario de la directiva de energía. (Si el dispositivo funciona en modo sin procesar, el controlador de bus es el propietario de la directiva de energía predeterminada).
Para cambiar el propietario de la directiva de energía predeterminada, los dos controladores siguientes deben llamar a WdfDeviceInitSetPowerPolicyOwnership:
- El propietario de la directiva de energía predeterminada debe llamar a WdfDeviceInitSetPowerPolicyOwnership con IsPowerPolicyOwner establecido en FALSE.
- El controlador que desea ser el propietario de la directiva de energía debe llamar a WdfDeviceInitSetPowerPolicyOwnership con IsPowerPolicyOwner establecido en TRUE.
Solo un controlador de cada pila puede ser el propietario de la directiva de energía, por lo que debe asegurarse de que solo un controlador llama a WdfDeviceInitSetPowerPolicyOwnership con IsPowerPolicyOwner establecido en TRUE.
Si el controlador llama a WdfDeviceInitSetPowerPolicyOwnership, debe hacerlo antes de llamar a WdfDeviceCreate. Para obtener más información, vea Creación de un objeto de dispositivo framework.
Para obtener más información sobre cómo llamar a WdfDeviceInitSetPowerPolicyOwnership, consulte Power Policy Ownership.
Ejemplos
El ejemplo de código siguiente procede del controlador de ejemplo serie de. En este ejemplo se comprueba un valor del Registro para determinar si un controlador debe ser el propietario de la directiva de energía. Si el controlador no debe ser el propietario de la directiva de energía, el ejemplo llama a 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
);
}
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfdevice.h (incluya Wdf.h) |
biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), FDOPowerPolicyOwnerAPI(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |