IoMakeAssociatedIrp-Funktion (ntddk.h)
Diese Routine ist für die Verwendung durch Dateisysteme und Dateisystemfiltertreiber reserviert. Die IoMakeAssociatedIrp-Routine ordnet und initialisiert eine IRP, die einer master IRP zugeordnet wird, die an einen Treiber der höchsten Ebene gesendet wird, sodass der Aufrufer die ursprüngliche Anforderung aufteilen und zugehörige IRPs an Treiber auf niedrigerer Ebene senden kann.
Syntax
PIRP IoMakeAssociatedIrp(
[in] PIRP Irp,
[in] CCHAR StackSize
);
Parameter
[in] Irp
Zeiger auf die master IRP, die für die Dispatch-Routine eines Treibers auf höchster Ebene eingegeben wurde.
[in] StackSize
Gibt die Anzahl der Stapelspeicherorte an, die für die zugeordnete IRP zugewiesen werden sollen. Der Wert muss mindestens gleich dem StackSize des Geräteobjekts des nächstniedrigen Treibers sein, aber die zugeordnete IRP kann einen zusätzlichen Stapelspeicherort für den Aufrufer aufweisen.
Rückgabewert
IoMakeAssociatedIrp gibt einen Zeiger auf die zugeordnete IRP oder einen NULL-Zeiger zurück, wenn ein IRP nicht zugeordnet werden kann.
Hinweise
Nur ein Treiber der obersten Ebene kann diese Routine aufrufen.
Der E/A-Manager schließt die master IRP automatisch ab, wenn niedrigere Treiber alle zugehörigen IRPs abgeschlossen haben, solange der Aufrufer seine IoCompletion-Routine in einem zugehörigen IRP nicht festgelegt und STATUS_MORE_PROCESSING_REQUIRED aus seiner IoCompletion-Routine zurückgegeben hat. Unter diesen Umständen muss der Aufrufer die master IRP explizit abschließen, wenn dieser Treiber festgestellt hat, dass alle zugehörigen IRPs abgeschlossen wurden.
Nur die master IRP ist einem Thread zugeordnet, zugeordnete IRPs nicht. Aus diesem Grund kann der E/A-Manager keine Cancel-Routinen für zugeordnete IRPs aufrufen, wenn ein Thread beendet wird. Wenn der Thread des master IRP beendet wird, ruft der E/A-Manager die master Abbrechen-Routine von IRP auf. Die Cancel-Routine ist dafür verantwortlich, alle zugehörigen IRPs aufzuspüren und IoCancelIrp aufzurufen, um sie abzubrechen.
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 | <= DISPATCH_LEVEL |