NDIS_DEVICE_OBJECT_ATTRIBUTES structure (ndis.h)

La structure NDIS_DEVICE_OBJECT_ATTRIBUTES définit les attributs d’un appareil qu’un filtre NDIS ou un pilote miniport peut passer à la fonction NdisRegisterDeviceEx .

Syntaxe

typedef struct _NDIS_DEVICE_OBJECT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  PNDIS_STRING       DeviceName;
  PNDIS_STRING       SymbolicName;
  PDRIVER_DISPATCH   *MajorFunctions;
  ULONG              ExtensionSize;
  PCUNICODE_STRING   DefaultSDDLString;
  LPCGUID            DeviceClassGuid;
} NDIS_DEVICE_OBJECT_ATTRIBUTES, *PNDIS_DEVICE_OBJECT_ATTRIBUTES;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_DEVICE_OBJECT_ATTRIBUTES. Définissez le membre Type de la structure spécifiée par Header sur NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES, le membre Revision sur NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1 et le membre Size sur NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1.

DeviceName

Pointeur vers une variable de type NDIS_STRING qui contient une chaîne Unicode terminée par une valeur Null qui nomme l’objet d’appareil. La chaîne doit être un nom de chemin d’accès complet, par exemple, \Device\DeviceName. Pour Microsoft Windows 2000 et versions ultérieures, NDIS définit le type NDIS_STRING en tant que type UNICODE_STRING .

SymbolicName

Pointeur vers une variable de type NDIS_STRING qui contient une chaîne Unicode qui est le nom visible par Win32 de l’appareil en cours d’inscription. En règle générale, SymbolicName a le format suivant : \DosDevices\SymbolicName.

MajorFunctions

Pointeur vers un tableau d’un ou plusieurs points d’entrée pour les routines de répartition du pilote de périphérique. Un pilote doit définir le même nombre de points d’entrée de répartition distincts que le nombre de codes IRP_MJ_XXX qu’il gère pour l’objet de périphérique. Chaque routine de répartition est déclarée comme suit :

NTSTATUS
  (*PDRIVER_DISPATCH) (
    IN PDEVICE_OBJECT  DeviceObject,
    IN PIRP  Irp
);

La routine de distribution a les paramètres suivants :

DeviceObject

Objet d’appareil pour la routine de répartition.

Irp

IRP pour la routine de dispatch.

Un pilote ne doit pas fournir de points d’entrée pour les gestionnaires PnP ou Gestion de l’alimentation, car l’objet d’appareil créé n’est pas destiné à un appareil physique et ne reçoit donc pas de pnP ou de gestion de l’alimentation IRP.

ExtensionSize

Nombre d’octets déterminé par le pilote à allouer pour l’extension de périphérique de l’objet de périphérique. La structure interne de l’extension de périphérique est définie par le pilote.

DefaultSDDLString

Représentation sous forme de chaîne pour les paramètres de sécurité par défaut de l’objet d’appareil. La sécurité appliquée à l’objet d’appareil est dérivée de cette chaîne.

Le paramètre de sécurité est spécifié dans un sous-ensemble de SDDL (Security Descriptor Definition Language). Un ensemble de constantes prédéfinies (SDDL_DEVOBJ_XXX) est également fourni. Pour plus d’informations, consultez Sécurisation des objets d’appareil.

DeviceClassGuid

Réservé pour NDIS. Définissez ce membre sur NULL.

Remarques

Un filtre NDIS ou un pilote miniport peut appeler la fonction NdisRegisterDeviceEx pour inscrire un appareil. Pour spécifier les attributs de périphérique, le pilote alloue et initialise une structure NDIS_DEVICE_OBJECT_ATTRIBUTES et transmet la structure au paramètre DeviceObjectAttributes de NdisRegisterDeviceEx.

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

NDIS_OBJECT_HEADER

NdisRegisterDeviceEx

UNICODE_STRING