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) |