Partager via


structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS (ndis.h)

Un pilote NDIS initialise une structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS pour définir ses caractéristiques de pilote miniport, y compris les points d’entrée de ses fonctions MiniportXxx .

Syntaxe

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;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS . Définissez le membre Type de la structure que l’en-tête spécifie sur NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS.

Pour indiquer la version de la structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS , définissez le membre Revision sur l’une des valeurs suivantes :

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

Ajout du membre SynchronousOidRequestHandler pour NDIS 6.80.

Définissez le membre Size sur NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

Ajout des membres DirectOidRequestHandler et CancelDirectOidRequestHandler pour NDIS 6.1.

Définissez le membre Size sur NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

Version d’origine pour NDIS 6.0.

Définissez le membre Size sur NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1.

MajorNdisVersion

Version principale de la bibliothèque NDIS que le pilote utilise. La valeur actuelle est 0x06.

MinorNdisVersion

Version mineure de NDIS. Voici les paramètres de valeur de version mineure disponibles.

Valeur Signification
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

Réservé au numéro de version principale du pilote. Les pilotes miniport peuvent spécifier n’importe quelle valeur dont ils ont besoin.

MinorDriverVersion

Réservé au numéro de version secondaire du pilote. Les pilotes miniport peuvent spécifier n’importe quelle valeur dont ils ont besoin.

Flags

Masque de bits qui peut être défini sur zéro ou sur l’un des indicateurs suivants, combiné avec le bit OR :

NDIS_INTERMEDIATE_DRIVER

Définissez si l’appelant est un pilote intermédiaire NDIS.

NDIS_WDM_DRIVER

Définissez si l’appelant est un pilote miniport NDIS-WDM.

SetOptionsHandler

Point d’entrée de la fonction MiniportSetOptions de l’appelant.

Obligatoire pour Co-NDIS. Suggéré pour les pilotes miniport Ethernet qui prennent en charge RSS à l’aide de MSI-C sur PCI.

InitializeHandlerEx

Obligatoire. Point d’entrée pour le Fonction MiniportInitializeEx .

HaltHandlerEx

Obligatoire. Point d’entrée de la fonction MiniportHaltEx .

UnloadHandler

Obligatoire. Point d’entrée pour le Fonction MiniportDriverUnload .

PauseHandler

Obligatoire. Point d’entrée de la fonction MiniportPause .

RestartHandler

Obligatoire. Point d’entrée de la fonction MiniportRestart .

OidRequestHandler

Point d’entrée de la fonction MiniportOidRequest . Obligatoire pour tous les pilotes miniport sans connexion, y compris tous les pilotes Ethernet, WLAN et IM. Facultatif pour certains pilotes miniport CoNDIS.

SendNetBufferListsHandler

Obligatoire. Point d’entrée pour le Fonction MiniportSendNetBufferLists .

ReturnNetBufferListsHandler

Obligatoire. Point d’entrée pour le Fonction MiniportReturnNetBufferLists .

CancelSendHandler

Obligatoire. Point d’entrée de la fonction MiniportCancelSend .

CheckForHangHandlerEx

facultatif. Point d’entrée pour le Fonction MiniportCheckForHangEx .

MiniportCheckForHangEx n’est pas requis pour les pilotes intermédiaires ou les miniports virtuels, car il ne s’agit pas d’appareils physiques pouvant se bloquer. Ils doivent donc définir ce point d’entrée sur NULL.

MiniportCheckForHangEx étant interdit sur tout appareil AOAC en raison de l’impact sur l’autonomie de la batterie, les pilotes miniport pour ces appareils doivent définir ce point d’entrée sur NULL.

MiniportCheckForHangEx est déconseillé pour les pilotes miniport destinés à être installés sur des appareils non-AOAC alimentés par batterie en raison de l’impact sur l’autonomie de la batterie, ils doivent donc définir ce point d’entrée sur NULL.

MiniportCheckForHangEx est autorisé, mais pas obligatoire pour les pilotes miniport destinés à être installés dans des appareils alimentés en ligne (alimentés par secteur). Pour les pilotes ciblant NDIS 6.30 et versions ultérieures, envisagez d’utiliser NdisMResetMiniport à la place.

ResetHandlerEx

Facultatif (obligatoire si vous fournissez CheckForHangHandlerEx). Point d’entrée de la fonction MiniportResetEx . MiniportResetEx n’étant pas requis pour les pilotes intermédiaires, ils doivent définir ce point d’entrée sur NULL.

DevicePnPEventNotifyHandler

Obligatoire. Point d’entrée pour le Fonction MiniportDevicePnPEventNotify .

ShutdownHandlerEx

Obligatoire. Point d’entrée de la fonction MiniportShutdownEx .

CancelOidRequestHandler

Obligatoire. Point d’entrée pour le Fonction MiniportCancelOidRequest .

DirectOidRequestHandler

Point d’entrée pour le Fonction MiniportDirectOidRequest . Il s’agit d’un point d’entrée facultatif. Définissez ce membre sur NULL si le pilote miniport ne gère pas les requêtes OID directes.

Facultatif pour Ethernet ; toutefois, si un est fourni, les deux doivent être fournis.

Obligatoire pour les miniports WLAN et Ethernet qui implémentent le déchargement RDMA ou IPSec.

CancelDirectOidRequestHandler

Point d’entrée pour le Fonction MiniportCancelDirectOidRequest . Il s’agit d’un point d’entrée facultatif. Définissez ce membre sur NULL si le pilote miniport ne gère pas les requêtes OID directes.

Facultatif pour Ethernet ; toutefois, si un est fourni, les deux doivent être fournis.

Obligatoire pour les miniports WLAN et Ethernet qui implémentent le déchargement RDMA ou IPSec.

SynchronousOidRequestHandler

Point d’entrée pour le Fonction MiniportSynchronousOidRequest . Il s’agit d’un point d’entrée facultatif. Définissez ce membre sur NULL si le pilote miniport ne gère pas les requêtes OID synchrones.

Obligatoire pour les miniports WLAN et Ethernet qui implémentent RSSv2.

Remarques

Un pilote NDIS passe un pointeur vers sa structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS dans le paramètre MiniportDriverCharacteristics du Fonction NdisMRegisterMiniportDriver . Un pilote miniport appelle NdisMRegisterMiniportDriver à partir de sa routine DriverEntry (voir aussi DriverEntry of NDIS Miniport Drivers).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

DriverEntry

MiniportCancelDirectOidRequest

MiniportCancelOidRequest

MiniportCancelSend

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportDirectOidRequest

MiniportDriverUnload

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

MiniportSetOptions

MiniportShutdownEx

NdisMRegisterMiniportDriver