Compartir a través de


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.
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, 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)

Consulte también

WdfDeviceCreate