NdisRegisterDeviceEx-Funktion (ndis.h)

Die NdisRegisterDeviceEx-Funktion erstellt ein Geräteobjekt, das auf den angegebenen Attributen basiert.

Syntax

NDIS_STATUS NdisRegisterDeviceEx(
  [in]  NDIS_HANDLE                    NdisHandle,
  [in]  PNDIS_DEVICE_OBJECT_ATTRIBUTES DeviceObjectAttributes,
  [out] PDEVICE_OBJECT                 *pDeviceObject,
  [out] PNDIS_HANDLE                   NdisDeviceHandle
);

Parameter

[in] NdisHandle

Ein Miniporttreiberhandle oder Filtertreiberhandle, das der Aufrufer durch Aufrufen des NdisMRegisterMiniportDriver-Funktion oder die NdisFRegisterFilterDriver-Funktion jeweils.

[in] DeviceObjectAttributes

Ein Zeiger auf einen NDIS_DEVICE_OBJECT_ATTRIBUTES Struktur, die die Attribute für das neue Gerät enthält.

[out] pDeviceObject

Ein Zeiger, der auf einen Zeiger auf eine neu erstellte DEVICE_OBJECT-Struktur zeigt, wenn der Aufruf erfolgreich ist. Wenn der Aufruf fehlschlägt, wird pDeviceObject auf NULL festgelegt.

[out] NdisDeviceHandle

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion, wenn sie erfolgreich ist, ein Handle an das Geräteobjekt zurückgibt. Dieses Handle ist ein erforderlicher Parameter für die NdisDeregisterDeviceEx-Funktion , die der Treiber anschließend aufruft.

Rückgabewert

NdisRegisterDeviceEx gibt einen der folgenden status Werte zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
NdisRegisterDeviceEx hat das Gerät erfolgreich registriert.
NDIS_STATUS_NOT_SUPPORTED
Der Aufrufer ist kein NDIS-Treiber.
NDIS_STATUS_XXX oder NTSTATUS_XXX
Fehler beim Versuch des Treibers, das Gerät zu registrieren. Normalerweise wird ein solcher Fehler status von einer NdisXxx-Funktion oder einer Kernelmodusunterstützungsroutine weitergegeben.

Hinweise

Miniporttreiber und Filtertreiber können NdisRegisterDeviceEx aufrufen, um ein virtuelles Gerät zu registrieren.

Hinweis NDIS-Treiber dürfen den DeviceExtension-Member der DEVICE_OBJECT Struktur, die NdisRegisterDeviceEx erstellt hat, nicht ändern.
 
Wenn ein NDIS-Treiber Speicherplatz für Kontextinformationen im Geräteobjekt benötigt, kann der Treiber einen Nonzero-Wert für das ExtensionSize-Element in der übergeben. NDIS_DEVICE_OBJECT_ATTRIBUTES Struktur am DeviceObjectAttributes-Parameter . In diesem Fall weist NDIS die Erweiterung für den Treiber zu, und der Treiber kann den NdisGetDeviceReservedExtension-Funktion , um einen Zeiger auf die Erweiterung abzurufen.

Der Treiber muss anschließend die Funktion NdisDeregisterDeviceEx aufrufen, wenn das Gerät nicht mehr benötigt wird. Wenn NdisRegisterDeviceEx eine Erweiterung zugewiesen hat, gibt NdisDeregisterDeviceEx die Erweiterung frei.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL
DDI-Complianceregeln Irql_Miscellaneous_Function(ndis)

Weitere Informationen

DEVICE_OBJECT

NDIS_DEVICE_OBJECT_ATTRIBUTES

NdisDeregisterDeviceEx

NdisFRegisterFilterDriver

NdisGetDeviceReservedExtension

NdisMRegisterMiniportDriver