Función WdfDeviceInitSetPowerPolicyOwnership (wdfdevice.h)
[Se aplica a KMDF y UMDF]
El método WdfDeviceInitSetPowerPolicyOwnership establece si el controlador de 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 es TRUE, el controlador de llamada es el propietario de la directiva de energía. Si es FALSE, no es el propietario de la directiva de energía.
Valor devuelto
None
Observaciones
Si está escribiendo un controlador de función 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 predeterminado de la directiva de energía).
Para cambiar el propietario de la directiva de energía predeterminada, los dos controladores siguientes deben llamar a WdfDeviceInitSetPowerPolicyOwnership:
- El propietario predeterminado de la directiva de energía 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, consulte Creación de un objeto de dispositivo de marco.
Para obtener más información sobre cómo llamar a WdfDeviceInitSetPowerPolicyOwnership, consulte Propiedad de Power Policy.
Ejemplos
El ejemplo de código siguiente procede del controlador de ejemplo serie . 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 | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfdevice.h (incluya Wdf.h) |
Library | 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) |