Freigeben über


IoCreateController-Funktion (ntddk.h)

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

Syntax

PCONTROLLER_OBJECT IoCreateController(
  [in] ULONG Size
);

Parameter

[in] Size

Gibt die Anzahl der Bytes an, die für die Controllererweiterung zugewiesen 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 zugewiesen werden konnte.

Bemerkungen

Ein Controllerobjekt stellt in der Regel einen physischen Gerätecontroller mit angeschlossenen Geräten dar, auf denen ein einzelner Treiber E/A-Anforderungen ausführt. Die Controllererweiterung wird aus einem nichtpageten Pool zugewiesen und ist garantiert durch 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 zu einem einzelnen, monolithischen Treiber kommen können. Ein Treiber kann auch ein Controllerobjekt verwenden, um Vorgänge über Gerätekanäle zu synchronisieren.

Wenn IoCreateControllerNULL-zurückgibt, sollte der Treiber das Starten des Geräts fehlschlagen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlIoPassive2(wdm), PowerIrpDDis(wdm)

Siehe auch

CONTROLLER_OBJECT

IoAllocateController-

IoDeleteController-

IoFreeController-