Función WdfDeviceInitSetPowerNotPageable (wdfdevice.h)
[Solo se aplica a KMDF]
El método WdfDeviceInitSetPowerNotPageable informa al administrador de energía de que el controlador no tendrá acceso a los datos paginables mientras el sistema realiza la transición entre un estado de suspensión y el estado de trabajo (S0).
Sintaxis
void WdfDeviceInitSetPowerNotPageable(
[in] PWDFDEVICE_INIT DeviceInit
);
Parámetros
[in] DeviceInit
Puntero proporcionado por el autor de la llamada a una estructura WDFDEVICE_INIT .
Valor devuelto
None
Observaciones
Si el controlador de función o el controlador de bus llama a WdfDeviceInitSetPowerNotPageable, es posible que el dispositivo del archivo de paginación del sistema no esté en estado de funcionamiento (D0) cuando el dispositivo del controlador entra en un estado de baja potencia o vuelve a su estado de trabajo. Por lo tanto, durante las transiciones de energía del dispositivo, el controlador no debe realizar ninguna operación que pueda provocar que el sistema operativo tenga acceso al archivo de paginación. Estas operaciones incluyen el acceso a archivos, el registro o el grupo paginado.
De forma predeterminada, el marco permite el acceso a datos paginables para los controladores de función. El marco usa la configuración del dispositivo primario para cada dispositivo secundario que un controlador de bus enumera, a menos que el controlador de bus llame a WdfDeviceInitSetPowerPageable o WdfDeviceInitSetPowerNotPageable para el dispositivo secundario. Si escribe un controlador de bus que llama a WdfDeviceInitSetPowerPageable para un dispositivo secundario, ningún controlador de la pila del dispositivo secundario puede llamar a WdfDeviceInitSetPowerNotPageable.
Llamar a WdfDeviceInitSetPowerPageable o WdfDeviceInitSetPowerNotPageable desde un controlador de filtro no tiene ningún efecto. El marco de trabajo usa la configuración que especifica el controlador siguiente inferior.
La mayoría de los controladores no necesitan llamar a WdfDeviceInitSetPowerPageable o WdfDeviceInitSetPowerNotPageable. En su lugar, debe permitir que el marco use la configuración predeterminada adecuada para el controlador. Sin embargo, el controlador debe llamar a WdfDeviceInitSetPowerNotPageable si el controlador forma parte de una pila de controladores que no debe tener acceso a datos paginables durante las transiciones de energía (como la pila de almacenamiento o la pila de vídeo), o si el controlador es un controlador de bus que enumera los dispositivos que pueden ser dispositivos de almacenamiento o vídeo.
Si el controlador llama a WdfDeviceInitSetPowerNotPageable, debe hacerlo antes de llamar a WdfDeviceCreate.
Para obtener más información sobre cómo llamar a WdfDeviceCreate, vea Creating a Framework Device Object.
Ejemplos
En el ejemplo de código siguiente se informa al administrador de energía de que un controlador no tendrá acceso a los datos paginables mientras el sistema realiza la transición entre un estado de suspensión y el estado de trabajo (S0).
WdfDeviceInitSetPowerNotPageable(DeviceInit);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Encabezado | wdfdevice.h (incluir Wdf.h) |
Library | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
IRQL | <= DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |