Partager via


Remplissage d’une structure NDIS_GUID

Une structure NDIS_GUID est définie comme suit :

typedef struct _NDIS_GUID {
  GUID  Guid;
  union {
    NDIS_OID  Oid;
    NDIS_STATUS  Status;
  };
  ULONG  Size;
  ULONG  Flags;
} NDIS_GUID, *PNDIS_GUID;

Pour obtenir un GUID pour le membre GUID de la structure, vous pouvez exécuter l’application Uuidgen.exe. Pour plus d’informations sur cette application, consultez Génération d’UUIDs d’interface.

Le membre Oid ou Status est un ULONG qui est un code OID. NDIS 6.0 ne mappe pas les indications de status personnalisées aux GUID WMI.

Si la structure NDIS_GUID mappe un OID qui retourne un tableau d’éléments de données, le membre Size spécifie la taille, en octets, de chaque élément de données du tableau. Si les données ne sont pas un tableau, le membre Size spécifie la taille des données. Si la taille des éléments de données est variable ou si l’OID ne retourne pas de données, le membre Size doit être -1.

Un OR au niveau du bit des valeurs suivantes pour le membre Flags indique le type de données associé au GUID :

fNDIS_GUID_TO_OID
Lorsque cet indicateur est défini, la structure NDIS_GUID mappe un GUID à un OID.

fNDIS_GUID_TO_STATUS
Réservé à NDIS. Les pilotes miniport ne doivent pas utiliser cet indicateur.

fNDIS_GUID_ANSI_STRING
Lorsque cet indicateur est défini, une chaîne ANSI terminée par null est fournie pour le GUID.

fNDIS_GUID_UNICODE_STRING
Lorsque cet indicateur est défini, une chaîne Unicode est fournie pour le GUID.

fNDIS_GUID_ARRAY
Lorsque cet indicateur est défini, un tableau d’éléments de données est fourni pour le GUID. La valeur Size spécifiée indique la longueur de chaque élément de données dans le tableau.

fNDIS_GUID_ALLOW_READ
Lorsque cet indicateur est défini, tous les utilisateurs sont autorisés à utiliser ce GUID pour obtenir des informations.

fNDIS_GUID_ALLOW_WRITE
Lorsque cet indicateur est défini, tous les utilisateurs sont autorisés à utiliser ce GUID pour définir des informations.

Note Par défaut, les GUID WMI personnalisés qu’un pilote miniport fournit sont accessibles uniquement aux utilisateurs disposant de privilèges d’administrateur. Un utilisateur disposant de privilèges d’administrateur peut toujours lire ou écrire dans un GUID personnalisé si le pilote miniport prend en charge l’opération de lecture ou d’écriture pour ce GUID. Vous pouvez définir les indicateurs fNDIS_GUID_ALLOW_READ et fNDIS_GUID_ALLOW_WRITE pour permettre à tous les utilisateurs d’accéder à un GUID personnalisé.

Notez que pour tous les GUID personnalisés qu’un pilote inscrit, celui-ci doit définir fNDIS_GUID_TO_OID. Les pilotes miniports ne doivent jamais définir fNDIS_GUID_TO_STATUS. Tous les autres indicateurs peuvent être combinés à l’aide d’une opération OR au niveau du bit.