Partager via


NdisRegisterDeviceEx, fonction (ndis.h)

La fonction NdisRegisterDeviceEx crée un objet d’appareil basé sur les attributs spécifiés.

Syntaxe

NDIS_STATUS NdisRegisterDeviceEx(
  [in]  NDIS_HANDLE                    NdisHandle,
  [in]  PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
  [out] PDEVICE_OBJECT                 *pDeviceObject,
  [out] PNDIS_HANDLE                   NdisDeviceHandle
);

Paramètres

[in] NdisHandle

Un handle de pilote miniport ou un handle de pilote de filtre que l’appelant a obtenu en appelant le Fonction NdisMRegisterMiniportDriver ou Fonction NdisFRegisterFilterDriver respectivement.

[in] DeviceObjectAttributes

Pointeur vers un NDIS_DEVICE_OBJECT_ATTRIBUTES structure qui contient les attributs du nouvel appareil.

[out] pDeviceObject

Pointeur qui pointe vers un pointeur vers une structure DEVICE_OBJECT nouvellement créée, si l’appel réussit. Si l’appel échoue, pDeviceObject est défini pour pointer sur NULL.

[out] NdisDeviceHandle

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction, si elle réussit, retourne un handle à l’objet d’appareil. Ce handle est un paramètre obligatoire pour la fonction NdisDeregisterDeviceEx que le pilote appelle par la suite.

Valeur retournée

NdisRegisterDeviceEx retourne l’une des valeurs de status suivantes :

Code de retour Description
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx a correctement inscrit l’appareil.
NDIS_STATUS_NOT_SUPPORTED
L’appelant n’est pas un pilote NDIS.
NDIS_STATUS_XXX ou NTSTATUS_XXX
La tentative d’inscription du périphérique par le pilote a échoué. En règle générale, une telle erreur status est propagée à partir d’une fonction NdisXxx ou d’une routine de prise en charge en mode noyau.

Remarques

Les pilotes miniport et les pilotes de filtre peuvent appeler NdisRegisterDeviceEx pour inscrire un appareil virtuel.

Note Les pilotes NDIS ne doivent pas modifier le membre DeviceExtension de la structure DEVICE_OBJECT créée par NdisRegisterDeviceEx .
 
Si un pilote NDIS nécessite de l’espace pour les informations de contexte dans l’objet de périphérique, le pilote peut passer une valeur différente de zéro pour le membre ExtensionSize dans le NDIS_DEVICE_OBJECT_ATTRIBUTES structure au niveau du paramètre DeviceObjectAttributes . Dans ce cas, NDIS alloue l’extension pour le pilote, et le pilote peut appeler le Fonction NdisGetDeviceReservedExtension pour obtenir un pointeur vers l’extension.

Le pilote doit ensuite appeler la fonction NdisDeregisterDeviceEx lorsque l’appareil n’est plus nécessaire. Si NdisRegisterDeviceEx a alloué une extension, NdisDeregisterDeviceEx libère l’extension.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL PASSIVE_LEVEL
Règles de conformité DDI Irql_Miscellaneous_Function(ndis)

Voir aussi

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver