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