OID_PM_ADD_WOL_PATTERN
Como conjunto, los controladores de protocolo NDIS usan el OID de OID_PM_ADD_WOL_PATTERN para agregar un patrón de reactivación de administración de energía en LAN a un adaptador de red. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura NDIS_PM_WOL_PATTERN .
Observaciones
Los controladores de protocolo NDIS 6.20 y versiones posteriores usan OID_PM_ADD_WOL_PATTERN para agregar un patrón Wake on LAN (WOL) a un adaptador de red. La solicitud OID contiene el criterio que el adaptador de red debe comparar con los paquetes entrantes cuando se encuentra en un estado de bajo consumo. El adaptador de red debe generar un evento de reactivación cuando recibe un paquete que coincida con los criterios de patrón.
Un controlador de protocolo puede agregar patrones WOL después de que se enlace correctamente a un adaptador de red subyacente y tan pronto como tenga los datos necesarios (como la dirección IP de la interfaz) para configurar el patrón WOL. El controlador de protocolo también puede agregar un patrón WOL en respuesta a otras notificaciones de eventos de administración de energía, como el rechazo de un patrón WOL agregado anteriormente o un protocolo descargado.
Para evitar condiciones de carrera en NDIS y otros controladores de protocolo que están enlazados al mismo adaptador de minipuerto, después de que NDIS empiece a establecer un adaptador de red en un estado de bajo consumo, se producirá un error en cualquier intento de agregar un nuevo patrón de reactivación a ese adaptador de red. Por ejemplo, si un controlador de protocolo NDIS intenta agregar un nuevo patrón WOL en el contexto de procesar una notificación de eventos NetEventSetPower para ese adaptador de red, NDIS producirá un error en la solicitud.
Antes de que NDIS envíe esta solicitud de OID a los controladores NDIS subyacentes o complete la solicitud al controlador de sobreaprovisionamiento, establece el miembro PatternId de ULONG de la estructura NDIS_PM_WOL_PATTERN en un valor único. Los controladores de protocolo y NDIS usan este identificador de patrón con la solicitud de OID de OID_PM_REMOVE_WOL_PATTERN para quitar el patrón WOL del adaptador de red subyacente.
Nota El identificador de patrón es un valor único para cada uno de los patrones que se establecen en un adaptador de red. Sin embargo, el identificador de patrón no es único globalmente en todos los adaptadores de minipuerto.
Si NDIS o un adaptador de red subyacente quita un patrón WOL, genera una indicación de estado NDIS_STATUS_PM_WOL_PATTERN_REJECTED . El miembro StatusBuffer de la estructura NDIS_STATUS_INDICATION contiene el identificador de patrón WOL de ULONG del patrón WOL rechazado.
El controlador de minipuerto devuelve uno de los siguientes códigos de estado para la solicitud:
NDIS_STATUS_SUCCESS
El patrón solicitado se agregó correctamente. El miembro PatternId de la estructura NDIS_PM_WOL_PATTERN contiene un identificador de patrón.
NDIS_STATUS_PENDING
La solicitud está pendiente de finalización. NDIS pasará el código de estado final y los resultados al controlador de finalización de solicitudes OID del autor de la llamada una vez completada la solicitud.
NDIS_STATUS_PM_WOL_PATTERN_LIST_FULL
Error en la solicitud porque la lista de patrones está llena y el adaptador de red no puede agregar otro patrón.
NDIS_STATUS_RESOURCES
NDIS o adaptador de red subyacente no pudo agregar el nuevo patrón debido a la falta de recursos.
NDIS_STATUS_INVALID_PARAMETER
Uno o varios parámetros de la estructura NDIS_PM_WOL_PATTERN no eran válidos.
NDIS_STATUS_BUFFER_TOO_SHORT
El búfer de información era demasiado corto. NDIS establece los DATOS. SET_INFORMATION. Miembro BytesNeeded de la estructura NDIS_OID_REQUEST al tamaño mínimo del búfer necesario.
NDIS_STATUS_NOT_SUPPORTED
El adaptador de red no admite el patrón WOL solicitado.
NDIS_STATUS_FAILURE
Error en la solicitud por motivos distintos de los motivos anteriores.
Requisitos
Versión |
Se admite en NDIS 6.20 y versiones posteriores. Obligatorio para los controladores de minipuerto. |
Encabezado |
Ntddndis.h (incluye Ndis.h) |