NDIS_DEVICE_OBJECT_ATTRIBUTES-Struktur (ndis.h)

Die NDIS_DEVICE_OBJECT_ATTRIBUTES-Struktur definiert die Attribute eines Geräts, die ein NDIS-Filter oder Miniporttreiber an die NdisRegisterDeviceEx-Funktion übergeben kann.

Syntax

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;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_DEVICE_OBJECT_ATTRIBUTES-Struktur. Legen Sie das Type-Element der Struktur fest, die Header auf NDIS_OBJECT_TYPE_DEVICE_OBJECT_ATTRIBUTES, das Revisionselement auf NDIS_DEVICE_OBJECT_ATTRIBUTES_REVISION_1 und das Size-Element auf NDIS_SIZEOF_DEVICE_OBJECT_ATTRIBUTES_REVISION_1.

DeviceName

Ein Zeiger auf eine Variable vom Typ NDIS_STRING, die eine Unicode-Zeichenfolge mit Null-Endung enthält, die das Geräteobjekt benennt. Die Zeichenfolge muss ein vollständiger Pfadname sein, z. B. \Device\DeviceName. Für Microsoft Windows 2000 und höher definiert NDIS den NDIS_STRING-Typ als UNICODE_STRING Typ.

SymbolicName

Ein Zeiger auf eine Variable vom Typ NDIS_STRING, die eine Unicode-Zeichenfolge enthält, die den Win32-sichtbaren Namen des registrierten Geräts darstellt. In der Regel hat SymbolicName das folgende Format: \DosDevices\SymbolicName.

MajorFunctions

Ein Zeiger auf ein Array mit mindestens einem Einstiegspunkt für die Dispatchroutinen des Gerätetreibers. Ein Treiber muss die gleiche Anzahl separater Dispatch-Einstiegspunkte wie die Anzahl der IRP_MJ_XXX-Codes festlegen, die der Treiber für das Geräteobjekt verarbeitet. Jede Dispatchroutine wird wie folgt deklariert:

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

Die Dispatchroutine weist die folgenden Parameter auf:

DeviceObject

Das Geräteobjekt für die Dispatchroutine.

Irp

Die IRP für die Dispatchroutine.

Ein Treiber darf keine Einstiegspunkte für PnP- oder Power Management-Handler bereitstellen, da das erstellte Geräteobjekt nicht für ein physisches Gerät ist und daher keine PnP- oder Power Management-IRPs empfängt.

ExtensionSize

Die vom Treiber bestimmte Anzahl von Bytes, die für die Geräteerweiterung des Geräteobjekts zugewiesen werden sollen. Die interne Struktur der Geräteerweiterung ist treiberdefiniert.

DefaultSDDLString

Eine Zeichenfolgendarstellung für die Standardsicherheitseinstellungen des Geräteobjekts. Die Sicherheit, die auf das Geräteobjekt angewendet wird, wird von dieser Zeichenfolge abgeleitet.

Die Sicherheitseinstellung wird in einer Teilmenge von Security Descriptor Definition Language (SDDL) angegeben. Ein Satz vordefinierter Konstanten (SDDL_DEVOBJ_XXX) wird ebenfalls bereitgestellt. Weitere Informationen finden Sie unter Sichern von Geräteobjekten.

DeviceClassGuid

Reserviert für NDIS. Legen Sie dieses Element auf NULL fest.

Hinweise

Ein NDIS-Filter oder Miniporttreiber kann die NdisRegisterDeviceEx-Funktion aufrufen, um ein Gerät zu registrieren. Um die Geräteattribute anzugeben, weist der Treiber eine NDIS_DEVICE_OBJECT_ATTRIBUTES-Struktur zu und initialisiert sie und übergibt die Struktur an den DeviceObjectAttributes-Parameter von NdisRegisterDeviceEx.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Kopfzeile ndis.h (einschließlich Ndis.h)

Weitere Informationen

NDIS_OBJECT_HEADER

NdisRegisterDeviceEx

UNICODE_STRING