IoAllocateDriverObjectExtension-Funktion (wdm.h)

Die IoAllocateDriverObjectExtension-Routine weist einen Kontextbereich pro Treiber zu, der als Treiberobjekterweiterung bezeichnet wird, und weist ihm einen eindeutigen Bezeichner zu.

Syntax

NTSTATUS IoAllocateDriverObjectExtension(
  [in]  PDRIVER_OBJECT DriverObject,
  [in]  PVOID          ClientIdentificationAddress,
  [in]  ULONG          DriverObjectExtensionSize,
  [out] PVOID          *DriverObjectExtension
);

Parameter

[in] DriverObject

Zeiger auf ein Treiberobjekt, dem der Kontextbereich zugeordnet wird.

[in] ClientIdentificationAddress

Gibt einen eindeutigen Bezeichner für den Kontextbereich an, der zugewiesen werden soll.

[in] DriverObjectExtensionSize

Gibt die Länge des Kontextbereichs in Bytes an, der zugewiesen werden soll.

[out] DriverObjectExtension

Zeiger auf den zugeordneten Kontextbereich.

Rückgabewert

IoAllocateDriverObjectExtension gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Gibt an, dass die Routine eine Erweiterung der angeforderten Größe zugewiesen hat.
STATUS_INSUFFICIENT_RESOURCES
Gibt an, dass der Arbeitsspeicher für die Treiberobjekterweiterung nicht zugewiesen werden konnte.
STATUS_OBJECT_NAME_COLLISION
Gibt an, dass eine Treiberobjekterweiterung mit der angegebenen ClientIdentificationAddress bereits vorhanden ist.

Bemerkungen

Der vom System für die Treiberobjekterweiterung zugewiesene Speicher ist ein residenter Speicher und kann von jedem IRQL aus zugegriffen werden. Der zugewiesene Speicher wird automatisch vom I/O-Manager freigegeben, wenn das Treiberobjekt gelöscht wird.

Aufrufer dieser Routine müssen einen eindeutigen Bezeichner für ClientIdentificationAddress bereitstellen. Um einen Zeiger auf den Kontextbereich abzurufen, übergibt ein Aufrufer die ClientIdentificationAddress an IoGetDriverObjectExtension.

Anforderungen

   
Unterstützte Mindestversion (Client) Ab Windows 2000 verfügbar.
Zielplattform Universell
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Siehe auch

IoGetDriverObjectExtension