Inicialización de un controlador de minipuerto de NDK-Capable
Un controlador de minipuerto que admite kernel directo de red (NDK) se inicializa de la misma manera que otros controladores de minipuerto. Sin embargo, también debe registrar puntos de entrada NDKPI adicionales.
Función DriverEntry
Cada función driver's DriverEntry del controlador miniport inicializa una estructura NDIS_MINIPORT_DRIVER_CHARACTERISTICS y la pasa a NdisMRegisterMiniportDriver como se describe en las páginas siguientes:
- Inicialización de un controlador miniport
- DriverEntry de la función controladores de minipuerto de NDIS
El controlador de miniporte compatible con NDK debe hacer lo siguiente al inicializar la estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS :
En el miembro OidRequestHandler , el controlador de minipuerto debe registrar una función MiniportOidRequest que admita:
Todos los NDKPI OID.
Cualquier OID que sea obligatorio para los controladores de minipuerto de NDIS en general.
Nota Para obtener una lista de estos OID obligatorios, consulte OID obligatorios para controladores de minipuerto.
En el miembro SetOptionsHandler , el controlador de minipuerto debe registrar una función MiniportSetOptions , tal como se describe en Configuración de los Servicios opcionales de miniporte driver y la siguiente sección de la función MiniportSetOptions.
MiniportSetOptions (función)
NDIS llama a la función MiniportSetOptions inmediatamente después de que se devuelva la función DriverEntry del controlador de miniporte. Se llama a la función MiniportSetOptions en el contexto de la llamada del controlador de miniport a NdisMRegisterMiniportDriver.
En su función MiniportSetOptions , el controlador de miniporte compatible con NDK registra su funcionalidad NDK y registra los siguientes puntos de entrada de función NDKPI necesarios, tal y como se describe en Configuring Optional Miniport Driver Services:
OpenNDKAdapterHandler (OPEN_NDK_ADAPTER_HANDLER)
CloseNDKAdapterHandler (CLOSE_NDK_ADAPTER_HANDLER)
Para registrar puntos de entrada de NDKPI para estas funciones, la función MiniportSetOptions del controlador de minipuerto debe hacer lo siguiente:
Inicialice una estructura de NDIS_NDK_PROVIDER_CHARACTERISTICS .
Nota Preste especial atención a la descripción del miembro Header . El controlador de minipuerto debe establecer este miembro correctamente para identificarse como un controlador de miniporte compatible con NDK.
Almacene los puntos de entrada de la función en los miembros OpenNDKAdapterHandler y CloseNDKAdapterHandler de la estructura.
Llame a la función NdisSetOptionalHandlers y pase la estructura en el parámetro OptionalHandlers .