IO_CSQ_INSERT_IRP Rückruffunktion (wdm.h)
Die CsqInsertIrp-Routine wird vom System verwendet, um ein IRP in eine vom Treiber implementierte, abbruchsichere IRP-Warteschlange einzufügen.
Syntax
IO_CSQ_INSERT_IRP IoCsqInsertIrp;
void IoCsqInsertIrp(
[in] _IO_CSQ *Csq,
[in] PIRP Irp
)
{...}
Parameter
[in] Csq
Zeiger auf die IO_CSQ-Struktur für die abbruchsichere IRP-Warteschlange.
[in] Irp
Zeiger auf das IRP, das in die IRP-Warteschlange eingefügt werden soll.
Rückgabewert
Keine
Bemerkungen
Der Treiber gibt die CsqInsertIrp-Routine für eine abbruchsichere IRP-Warteschlange an, wenn die IO_CSQ Struktur der Warteschlange initialisiert wird. Der Treiber gibt die Routine als CsqInsertIrp-Parameter von IoCsqInitialize an, wenn IO_CSQ initialisiert wird. Weitere Informationen finden Sie unter Cancel-Safe IRP-Warteschlangen.
Die Routinen IoCsqInsertIrp und IoCsqInsertIrpEx rufen CsqInsertIrp auf, um den IRP in die Warteschlange einzufügen.
Beispiele
Um eine CsqInsertIrp-Rückrufroutine zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückrufroutine identifiziert. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine CsqInsertIrp-Rückrufroutine mit dem Namen MyCsqInsertIrp
zu definieren, verwenden Sie den typ IO_CSQ_INSERT_IRP, wie in diesem Codebeispiel gezeigt:
IO_CSQ_INSERT_IRP MyCsqInsertIrp;
Implementieren Sie dann Ihre Rückrufroutine wie folgt:
_Use_decl_annotations_
NTSTATUS
MyCsqInsertIrp(
struct _IO_CSQ *Csq,
PIRP Irp
)
{
// Function body
}
Der IO_CSQ_INSERT_IRP Funktionstyp ist in der Headerdatei Wdm.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie die _Use_decl_annotations_
Anmerkung ihrer Funktionsdefinition hinzu. Die _Use_decl_annotations_
Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den IO_CSQ_INSERT_IRP Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für WDM-Treiber. Informationen zu _Use_decl_annotations_
finden Sie unter Annotating Function Behavior.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |