Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IoCsqInitializeEx Routine initialisiert die Verteilertabelle für eine abbruchsichere IRP-Warteschlange.
Syntax
NTSTATUS IoCsqInitializeEx(
[out] PIO_CSQ Csq,
[in] PIO_CSQ_INSERT_IRP_EX CsqInsertIrp,
[in] PIO_CSQ_REMOVE_IRP CsqRemoveIrp,
[in] PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp,
[in] PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock,
[in] PIO_CSQ_RELEASE_LOCK CsqReleaseLock,
[in] PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);
Parameter
[out] Csq
Zeiger auf die IO_CSQ Struktur, die von IoCsqInitializeExinitialisiert werden soll.
[in] CsqInsertIrp
Zeiger auf die treiberdefinierte CsqInsertIrpEx--Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
[in] CsqRemoveIrp
Zeiger auf die treiberdefinierte CsqRemoveIrp--Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
[in] CsqPeekNextIrp
Zeiger auf die treiberdefinierte CsqPeekNextIrp-Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
[in] CsqAcquireLock
Zeiger auf die treiberdefinierte CsqAcquireLock--Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
[in] CsqReleaseLock
Zeiger auf die treiberdefinierte CsqReleaseLock--Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
[in] CsqCompleteCanceledIrp
Zeiger auf die vom Treiber definierte CsqCompleteCanceledIrp--Funktion für die abbruchsichere IRP-Warteschlange des Treibers.
Rückgabewert
IoCsqInitializeEx- gibt STATUS_SUCCESS bei Erfolg oder den entsprechenden Fehlercode beim Fehler zurück.
Bemerkungen
Die IoCsqInitialize und IoCsqInitializeEx Routinen initialisieren eine IO_CSQ Struktur, die die abbruchsichere IRP-Warteschlange eines Treibers beschreibt. Sie können IoCsqInitializeEx- verwenden, um eine IRP-Warteschlange mit erweiterten Funktionen anstelle einer von IoCsqInitializeangegeben anzugeben:
- Der Treiber implementiert eine CsqInsertIrpEx- Routine anstelle einer CsqInsertIrp- Routine. CsqInsertIrpEx einen zusätzlichen Parameter verwendet, InsertContext. Wenn der Treiber IoCsqInsertIrpEx- aufruft, um das IRP einzufügen, gibt er den Wert an, der als InsertContext-übergeben wird.
- IoCsqInsertIrpEx- gibt den Rückgabewert CsqInsertIrpExzurück. Treiber können den Rückgabewert verwenden, um anzugeben, ob ein Einfügevorgang erfolgreich war oder fehlgeschlagen ist.
Beachten Sie, dass IoCsq-Xxx- Routinen die DriverContext-[3] des IRP-Elements verwenden, um IRP-Kontextinformationen zu enthalten. Treiber, die diese Routinen verwenden, um IRPs in die Warteschlange zu stellen, müssen dieses Mitglied nicht verwenden.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Verfügbar in Windows Server 2003 und höheren Versionen des Windows-Betriebssystems. Die Routine ist auch in der Csq.lib-Bibliothek verfügbar, die im Lieferumfang des Windows Driver Kit (WDK) und des Driver Development Kit (DDK) für Windows Server 2003 enthalten ist. Treiber, die auch unter Windows XP, Windows 2000 und Windows 98/Me funktionieren müssen, können stattdessen mit Csq.lib verknüpft werden, um die Routine zu verwenden. |
| Zielplattform- | Universal |
| Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL- | NtosKrnl.exe |
| IRQL- | Beliebige Ebene |