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) |