Adición y eliminación de descargas de protocolo de bajo consumo
Para agregar una descarga de protocolo de baja energía, los controladores de protocolo NDIS emiten una solicitud de conjunto de OID de OID_PM_ADD_PROTOCOL_OFFLOAD. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura de NDIS_PM_PROTOCOL_OFFLOAD .
Nota Si un paquete entrante coincide con un protocolo descargado y un patrón (por ejemplo, debido a un error de configuración), el adaptador de red debe responder al paquete y reactivar el equipo.
La estructura de NDIS_PM_PROTOCOL_OFFLOAD incluye la siguiente información:
Miembro | Descripción | ||||||||
---|---|---|---|---|---|---|---|---|---|
Prioridad |
Contiene la prioridad de la descarga del protocolo. Si un controlador sobreagregar agrega una descarga de protocolo de prioridad más alta cuando no hay recursos disponibles para más descargas de protocolo, NDIS podría quitar una descarga de protocolo de prioridad inferior a los recursos gratuitos. Los controladores de minipuerto deben ignorar este miembro. Los controladores de protocolo pueden proporcionar cualquier valor dentro del intervalo predefinido de NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST a NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST. |
||||||||
ProtocolOffloadType |
Contiene un valor de NDIS_PM_PROTOCOL_OFFLOAD_TYPE que especifica el tipo de descarga de protocolo. |
||||||||
FriendlyName |
Contiene una estructura NDIS_PM_COUNTED_STRING que contiene la descripción legible del usuario de la descarga del protocolo de baja energía. |
||||||||
ProtocolOffloadId |
Contiene un valor proporcionado por NDIS que identifica el protocolo descargado. Antes de que NDIS envíe la solicitud OID de OID_PM_ADD_PROTOCOL_OFFLOAD a los controladores NDIS subyacentes o complete la solicitud al controlador de sobreslización, NDIS establece ProtocolOffloadId en un valor único entre las descargas de protocolo en un adaptador de red. |
||||||||
NextProtocolOffloadOffset |
Contiene el desplazamiento, el principio de la solicitud OID InformationBuffer, a la siguiente estructura de NDIS_PM_PROTOCOL_OFFLOAD de una lista para el OID de OID_PM_PROTOCOL_OFFLOAD_LIST . Para obtener más información sobre OID_PM_PROTOCOL_OFFLOAD_LIST, consulte Obtención de la configuración de parámetros actuales de descargas del protocolo de bajo consumo. |
||||||||
ProtocolOffloadParameters |
Contiene una de las estructuras IPv4ARPParameters, IPv6NSParameters o Dot11RSNRekeyParameters en una unión.
|
NDIS asigna un identificador único para un adaptador de red a cada protocolo descargado. El identificador de descarga de protocolo es un valor único para cada uno de los protocolos que se descargan en un adaptador de red. Sin embargo, el identificador de descarga de protocolo no es único globalmente en todos los adaptadores de red. NDIS pasa este identificador al controlador de minipuerto subyacente cuando NDIS envía la solicitud de OID de OID_PM_ADD_PROTOCOL_OFFLOAD al controlador de minipuerto. Si la descarga del protocolo se realiza correctamente, NDIS devuelve el identificador al controlador de sobrescargó el protocolo. El controlador de sobresuso usa el identificador para quitar un protocolo descargado previamente. El identificador de descarga de protocolo también se usa en las indicaciones de estado para los controladores de capa superior cuando se quita un protocolo descargado de un adaptador de red.
Los controladores de protocolo deben quitar todos los protocolos descargados de un adaptador de red antes de cerrar el enlace a ese adaptador de red. Para quitar una descarga de protocolo de baja energía, un controlador de protocolo envía una solicitud de conjunto de OID de OID_PM_REMOVE_PROTOCOL_OFFLOAD. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a un identificador de descarga de protocolo.
NDIS permite que varios controladores de protocolo NDIS agreguen descargas de protocolo al mismo adaptador de red. Para asegurarse de que el conjunto correcto de protocolos se ha descargado en un adaptador de red cuando el número de protocolos descargados solicitados es mayor que lo que un adaptador de red puede admitir, los controladores de protocolo asignan una prioridad a cada protocolo descargado. Cuando NDIS no puede descargar un nuevo protocolo de prioridad alta porque el adaptador de red está fuera de los recursos, NDIS elimina uno de los protocolos descargados de menor prioridad (si los hay) e intenta descargar de nuevo el protocolo de alta prioridad.
Nota Un controlador de minipuerto debe producir un error en una descarga de protocolo de baja energía y devolver el código de estado de STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL para permitir que NDIS vuelva a priorizar las descargas del protocolo.
Si como resultado de la descarga de un protocolo de prioridad alta, se elimina uno de los protocolos descargados de menor prioridad, NDIS envía una indicación de estado de NDIS_STATUS_PM_OFFLOAD_REJECTED para notificar al controlador que establece la descarga del protocolo eliminado. El miembro StatusBuffer de la estructura NDIS_STATUS_INDICATION contiene un identificador de descarga de protocolo de la descarga de protocolo rechazada. NDIS proporcionó el identificador de descarga de protocolo en el miembro ProtocolOffloadId de la estructura de NDIS_PM_PROTOCOL_OFFLOAD .