Compartir a través de


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.
Si está escribiendo un controlador de bus basado en marco o un controlador de filtro, y si el dispositivo no funciona en modo sin procesar, el controlador no será el propietario de la directiva de energía a menos que llame a WdfDeviceInitSetPowerPolicyOwnership.

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)

Consulte también

WdfDeviceCrear