Freigeben über


IoCreateController-Funktion (ntddk.h)

Die IoCreateController-Routine ordnet Arbeitsspeicher für ein Controllerobjekt zu und initialisiert es mit einer Controllererweiterung einer treiberbestimmten Größe.

Syntax

PCONTROLLER_OBJECT IoCreateController(
  [in] ULONG Size
);

Parameter

[in] Size

Gibt die Anzahl der Bytes an, die der Controllererweiterung zugeordnet werden sollen.

Rückgabewert

IoCreateController gibt einen Zeiger auf das Controllerobjekt oder einen NULL-Zeiger zurück, wenn der Speicher für die angeforderte Geräteerweiterung nicht zugeordnet werden konnte.

Hinweise

Ein Controllerobjekt stellt in der Regel einen Controller für physische Geräte mit angeschlossenen Geräten dar, auf denen ein einzelner Treiber E/A-Anforderungen ausführt. Die Controllererweiterung wird aus einem nicht ausseitigen Pool zugeordnet und ist garantiert für jede Treiberroutine und in einem beliebigen Threadkontext zugänglich.

Das Controllerobjekt wird verwendet, um E/A-Vorgänge mit Zielgeräten zu synchronisieren, für die E/A-Anforderungen gleichzeitig an einen einzelnen monolithischen Treiber eingehen können. Ein Treiber kann auch ein Controllerobjekt verwenden, um Vorgänge über Gerätekanäle zu synchronisieren.

Wenn IoCreateControllerNULL zurückgibt, sollte der Gerätestart des Treibers fehlschlagen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlIoPassive2(wdm), PowerIrpDDis(wdm)

Weitere Informationen

CONTROLLER_OBJECT

IoAllocateController

IoDeleteController

IoFreeController