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

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 minipuerto 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 de . Función MiniportDevicePnPEventNotify .

ShutdownHandlerEx

Necesario. Punto de entrada de la función MiniportShutdownEx .

CancelOidRequestHandler

Necesario. El punto de entrada de . Función MiniportCancelOidRequest .

DirectOidRequestHandler

El punto de entrada de . 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 OID directas.

Opcional para Ethernet; sin embargo, si se proporciona uno, se deben proporcionar ambos.

Necesario para minipuertos WLAN y Ethernet que implementan la descarga RDMA o IPSec.

CancelDirectOidRequestHandler

El punto de entrada de . 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 OID directas.

Opcional para Ethernet; sin embargo, si se proporciona uno, se deben proporcionar ambos.

Necesario para minipuertos WLAN y Ethernet que implementan la descarga RDMA o IPSec.

SynchronousOidRequestHandler

El punto de entrada de . 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 minipuertos WLAN y Ethernet que implementan RSSv2.

Comentarios

Un controlador NDIS pasa un puntero a su estructura 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 Se admite en NDIS 6.0 y versiones posteriores.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

DriverEntry

MiniportCancelDirectOidRequest

MiniportCancelOidRequest

MiniportCancelSend

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportDirectOidRequest

MiniportDriverUnload

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

MiniportSetOptions

MiniportShutdownEx

NdisMRegisterMiniportDriver