Restablecimiento de hardware del controlador miniporte
Un controlador de minipuerto debe registrar una función MiniportResetEx con NdisMRegisterMiniportDriver.
MiniportResetEx puede completarse de forma sincrónica o asincrónica con una llamada a NdisMResetComplete(consulte la ilustración siguiente).
MiniportResetEx debe:
Deshabilite más interrupciones.
Borre los datos asociados a los envíos en curso. Por ejemplo, en un búfer de anillo para un dispositivo de acceso directo a memoria (DMA) de bus-master, se deben borrar los punteros para enviar búferes. Los controladores miniporte deserializados y orientados a la conexión deben devolver NDIS_STATUS_REQUEST_ABORTED para las solicitudes de envío en cola.
Restaure el estado de hardware y el estado interno del controlador de minipuerto al estado que existía antes de la operación de restablecimiento.
El controlador de minipuerto es responsable de restaurar el estado de hardware del dispositivo, excepto las direcciones de multidifusión, los filtros de paquetes, la configuración de descarga de tareas y los patrones de reactivación. Estos valores se restauran mediante el controlador de minipuerto o NDIS. El controlador de minipuerto determina quién es responsable de restaurar esta configuración devolviendo un valor booleano en el parámetro AddressingReset .
Si el controlador de minipuerto devuelve FALSE en el parámetro AddressingReset , el controlador de minipuerto restaura sus direcciones de multidifusión, filtros de paquetes, configuración de descarga de tareas y patrones de reactivación a su estado inicial. Si el controlador de minipuerto devuelve TRUE en AddressingReset, NDIS llama a una función MiniportOidRequest del controlador miniporte sin conexión o una función MiniportCoOidRequest del controlador de miniporte orientado a la conexión para establecer las siguientes opciones de configuración:
El filtro de paquetes de red a través de una solicitud establecida de OID_GEN_CURRENT_PACKET_FILTER.
La lista de direcciones de multidifusión a través de una solicitud establecida de OID_802_3_MULTICAST_LIST.
La configuración de encapsulación de la descarga de tareas se realiza a través de una solicitud establecida de OID_OFFLOAD_ENCAPSULATION.
Patrones de reactivación de administración de energía a través de una solicitud establecida de OID_PNP_ADD_WAKE_UP_PATTERN. Nota A partir de NDIS 6.20, los patrones de reactivación establecidos a través de OID_PM_ADD_WOL_PATTERN deben restaurarse mediante el controlador de minipuerto.
Temas relacionados
Estados del adaptador de un controlador miniporte
Estados y operaciones del adaptador de miniporte
Funciones de restablecimiento y detención del controlador de miniporte