estructura NDIS_MINIPORT_DRIVER_CHARACTERISTICS (ndis.h)
Un controlador NDIS inicializa una estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS para definir sus características del controlador de minipuerto, incluidos los puntos de entrada de sus funciones MiniportXxx .
Sintaxis
typedef struct _NDIS_MINIPORT_DRIVER_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
UCHAR MajorDriverVersion;
UCHAR MinorDriverVersion;
ULONG Flags;
SET_OPTIONS_HANDLER SetOptionsHandler;
MINIPORT_INITIALIZE_HANDLER InitializeHandlerEx;
MINIPORT_HALT_HANDLER HaltHandlerEx;
MINIPORT_DRIVER_UNLOAD UnloadHandler;
MINIPORT_PAUSE_HANDLER PauseHandler;
MINIPORT_RESTART_HANDLER RestartHandler;
MINIPORT_OID_REQUEST_HANDLER OidRequestHandler;
MINIPORT_SEND_NET_BUFFER_LISTS_HANDLER SendNetBufferListsHandler;
MINIPORT_RETURN_NET_BUFFER_LISTS_HANDLER ReturnNetBufferListsHandler;
MINIPORT_CANCEL_SEND_HANDLER CancelSendHandler;
MINIPORT_CHECK_FOR_HANG_HANDLER CheckForHangHandlerEx;
MINIPORT_RESET_HANDLER ResetHandlerEx;
MINIPORT_DEVICE_PNP_EVENT_NOTIFY_HANDLER DevicePnPEventNotifyHandler;
MINIPORT_SHUTDOWN_HANDLER ShutdownHandlerEx;
MINIPORT_CANCEL_OID_REQUEST_HANDLER CancelOidRequestHandler;
MINIPORT_DIRECT_OID_REQUEST_HANDLER DirectOidRequestHandler;
MINIPORT_CANCEL_DIRECT_OID_REQUEST_HANDLER CancelDirectOidRequestHandler;
MINIPORT_SYNCHRONOUS_OID_REQUEST_HANDLER SynchronousOidRequestHandler;
} NDIS_MINIPORT_DRIVER_CHARACTERISTICS, *PNDIS_MINIPORT_DRIVER_CHARACTERISTICS;
Miembros
Header
Estructura NDIS_OBJECT_HEADER de la estructura NDIS_MINIPORT_DRIVER_CHARACTERISTICS . Establezca el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS.
Para indicar la versión de la estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS , establezca el miembro Revision en uno de los valores siguientes:
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3
Se agregó el miembro SynchronousOidRequestHandler para NDIS 6.80.
Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3.
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2
Se agregaron los miembros DirectOidRequestHandler y CancelDirectOidRequestHandler para NDIS 6.1.
Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2.
NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1
Versión original de NDIS 6.0.
Establezca el miembro Size en NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1.
MajorNdisVersion
La versión principal de la biblioteca NDIS que está usando el controlador. El valor actual es 0x06.
MinorNdisVersion
La versión secundaria de NDIS. A continuación se muestran los valores de valor de versión secundaria disponibles.
Valor | Significado |
---|---|
0 | NDIS 6 |
20 | NDIS 6.20 |
30 | NDIS 6.30 |
40 | NDIS 6.40 |
50 | NDIS 6.50 |
51 | NDIS 6.51 |
60 | NDIS 6.60 |
70 | NDIS 6.70 |
80 | NDIS 6.80 |
81 | NDIS 6.81 |
82 | NDIS 6.82 |
83 | NDIS 6.83 |
84 | NDIS 6.84 |
85 | NDIS 6.85 |
86 | NDIS 6.86 |
87 | NDIS 6.87 |
88 | NDIS 6.88 |
89 | NDIS 6.89 |
MajorDriverVersion
Reservado para el número de versión principal del controlador. Los controladores de minipuerto pueden especificar cualquier valor que requieran.
MinorDriverVersion
Reservado para el número de versión secundaria del controlador. Los controladores de minipuerto pueden especificar cualquier valor que requieran.
Flags
Máscara de bits que se puede establecer en cero o en cualquiera de las marcas siguientes, combinadas con OR bit a bit:
NDIS_INTERMEDIATE_DRIVER
Establezca si el autor de la llamada es un controlador intermedio NDIS.
NDIS_WDM_DRIVER
Establezca si el autor de la llamada es un controlador de miniporte NDIS-WDM.
SetOptionsHandler
Punto de entrada de la función MiniportSetOptions del autor de la llamada.
Obligatorio para co-NDIS. Se recomienda para los controladores de minipuerto Ethernet que admiten RSS mediante MSI-C a través de PCI.
InitializeHandlerEx
Necesario. El punto de entrada de . Función MiniportInitializeEx .
HaltHandlerEx
Necesario. Punto de entrada de la función MiniportHaltEx .
UnloadHandler
Necesario. El punto de entrada de . Función MiniportDriverUnload .
PauseHandler
Necesario. Punto de entrada de la función MiniportPause .
RestartHandler
Necesario. Punto de entrada de la función MiniportRestart .
OidRequestHandler
Punto de entrada de la función MiniportOidRequest . Necesario para todos los controladores de miniporte sin conexión, incluidos todos los controladores Ethernet, WLAN y IM. Opcional para algunos controladores de minipuerto de CoNDIS.
SendNetBufferListsHandler
Necesario. El punto de entrada de . Función MiniportSendNetBufferLists .
ReturnNetBufferListsHandler
Necesario. El punto de entrada de . Función MiniportReturnNetBufferLists .
CancelSendHandler
Necesario. Punto de entrada de la función MiniportCancelSend .
CheckForHangHandlerEx
Opcional. El punto de entrada de . Función MiniportCheckForHangEx .
MiniportCheckForHangEx no es necesario para controladores intermedios o miniportes virtuales porque no son dispositivos físicos que pueden bloquearse, por lo que deben establecer este punto de entrada en NULL.
MiniportCheckForHangEx está prohibido en cualquier dispositivo AOAC debido al impacto en la duración de la batería, por lo que los controladores de miniporte para estos dispositivos deben establecer este punto de entrada en NULL.
MiniportCheckForHangEx no es recomendable para los controladores de miniporte destinados a instalarse en dispositivos que no son AOAC, con batería debido al impacto en la duración de la batería, por lo que deben establecer este punto de entrada en NULL.
MiniportCheckForHangEx está permitido, pero no es necesario para los controladores de minipuerto que están diseñados para instalarse en dispositivos con tecnología de línea (con alimentación principal). En el caso de los controladores destinados a NDIS 6.30 y versiones posteriores, considere la posibilidad de usar NdisMResetMiniport en su lugar.
ResetHandlerEx
Opcional (obligatorio si proporciona CheckForHangHandlerEx). Punto de entrada de la función MiniportResetEx . MiniportResetEx no es necesario para los controladores intermedios, por lo que deben establecer este punto de entrada en NULL.
DevicePnPEventNotifyHandler
Necesario. El punto de entrada del Función MiniportDevicePnPEventNotify .
ShutdownHandlerEx
Necesario. Punto de entrada de la función MiniportShutdownEx .
CancelOidRequestHandler
Necesario. El punto de entrada del Función MiniportCancelOidRequest .
DirectOidRequestHandler
El punto de entrada del Función MiniportDirectOidRequest . Se trata de un punto de entrada opcional. Establezca este miembro en NULL si el controlador de minipuerto no controla las solicitudes de OID directas.
Opcional para Ethernet; sin embargo, si se proporciona una, se deben proporcionar ambas.
Necesario para miniportes WLAN y Ethernet que implementan la descarga RDMA o IPSec.
CancelDirectOidRequestHandler
El punto de entrada del Función MiniportCancelDirectOidRequest . Se trata de un punto de entrada opcional. Establezca este miembro en NULL si el controlador de minipuerto no controla las solicitudes de OID directas.
Opcional para Ethernet; sin embargo, si se proporciona una, se deben proporcionar ambas.
Necesario para miniportes WLAN y Ethernet que implementan la descarga RDMA o IPSec.
SynchronousOidRequestHandler
El punto de entrada del Función MiniportSynchronousOidRequest . Se trata de un punto de entrada opcional. Establezca este miembro en NULL si el controlador de minipuerto no controla las solicitudes de OID sincrónicas.
Necesario para miniportes WLAN y Ethernet que implementan RSSv2.
Comentarios
Un controlador NDIS pasa un puntero a su estructura de NDIS_MINIPORT_DRIVER_CHARACTERISTICS en el parámetro MiniportDriverCharacteristics del Función NdisMRegisterMiniportDriver . Un controlador de minipuerto llama a NdisMRegisterMiniportDriver desde su rutina DriverEntry (consulte también DriverEntry of NDIS Miniport Drivers).
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con NDIS 6.0 y versiones posteriores. |
Encabezado | ndis.h (incluya Ndis.h) |