Ausfüllen einer NDIS_GUID-Struktur
Eine NDIS_GUID-Struktur wird wie folgt definiert:
typedef struct _NDIS_GUID {
GUID Guid;
union {
NDIS_OID Oid;
NDIS_STATUS Status;
};
ULONG Size;
ULONG Flags;
} NDIS_GUID, *PNDIS_GUID;
Um eine GUID für den Guid-Member der -Struktur zu erhalten, können Sie die Uuidgen.exe-Anwendung ausführen. Weitere Informationen zu dieser Anwendung finden Sie unter Generieren von Schnittstellen-UUIDs.
Das Element "Oid" oder "Status" ist ein ULONG-Element, bei dem es sich um einen OID-Code handelt. NDIS 6.0 zuordnen keine benutzerdefinierten status-Angaben zu WMI-GUIDs.
Wenn die NDIS_GUID-Struktur eine OID zuordnet, die ein Array von Datenelementen zurückgibt, gibt das Element Größe die Größe jedes Datenelements im Array in Byte an. Wenn es sich bei den Daten nicht um ein Array handelt, gibt das Element Größe die Größe der Daten an. Wenn die Größe der Datenelemente variabel ist oder die OID keine Daten zurückgibt, muss der Size-Member -1 sein.
Ein bitweises OR der folgenden Werte für das Flags-Element gibt den Datentyp an, der der GUID zugeordnet ist:
fNDIS_GUID_TO_OID
Wenn dieses Flag festgelegt ist, ordnet die NDIS_GUID-Struktur eine GUID einer OID zu.
fNDIS_GUID_TO_STATUS
Reserviert für NDIS. Miniport-Treiber sollten dieses Flag nicht verwenden.
fNDIS_GUID_ANSI_STRING
Wenn dieses Flag festgelegt ist, wird eine NULL-endende ANSI-Zeichenfolge für die GUID bereitgestellt.
fNDIS_GUID_UNICODE_STRING
Wenn dieses Flag festgelegt ist, wird eine Unicode-Zeichenfolge für die GUID bereitgestellt.
fNDIS_GUID_ARRAY
Wenn dieses Flag festgelegt ist, wird ein Array von Datenelementen für die GUID bereitgestellt. Der angegebene Size-Wert gibt die Länge der einzelnen Datenelemente im Array an.
fNDIS_GUID_ALLOW_READ
Wenn dieses Flag festgelegt ist, können alle Benutzer diese GUID verwenden, um Informationen abzurufen.
fNDIS_GUID_ALLOW_WRITE
Wenn dieses Flag festgelegt ist, können alle Benutzer diese GUID verwenden, um Informationen festzulegen.
Hinweis Standardmäßig sind benutzerdefinierte WMI-GUIDs, die ein Miniporttreiber bereitstellt, nur für Benutzer mit Administratorrechten zugänglich. Ein Benutzer mit Administratorrechten kann immer eine benutzerdefinierte GUID lesen oder in eine benutzerdefinierte GUID schreiben, wenn der Miniporttreiber den Lese- oder Schreibvorgang für diese GUID unterstützt. Sie können die flags fNDIS_GUID_ALLOW_READ und fNDIS_GUID_ALLOW_WRITE festlegen, damit alle Benutzer auf eine benutzerdefinierte GUID zugreifen können.
Beachten Sie, dass der Treiber für alle benutzerdefinierten GUIDs, die ein Treiber registriert, fNDIS_GUID_TO_OID festlegen muss. Miniport-Treiber sollten niemals fNDIS_GUID_TO_STATUS festlegen. Alle anderen Flags können mithilfe einer bitweisen OR-Operation kombiniert werden.