HW_PROCESS_SERVICE_REQUEST Rückruffunktion (storport.h)
Die HwStorProcessServiceRequest-Rückrufroutine empfängt die IRP der Gerätesteuerung, die die IOCTL_MINIPORT_PROCESS_SERVICE_IRP Anforderung enthält, wenn ein Aufrufer, z. B. eine Benutzermodusanwendung oder ein Kernelmodustreiber, einen "Reverse Callback"-Vorgang erfordert. Die E/A wird vom Miniporttreiber abgeschlossen, wenn er den Anrufer über etwas informieren muss oder der Aufrufer etwas tun muss.
Syntax
HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
void HwProcessServiceRequest(
PVOID DeviceExtension,
PVOID Irp
)
{...}
Parameter
DeviceExtension
Ein Zeiger auf den Speicherbereich des virtuellen Miniporttreibers pro Adapter.
Irp
Ein Zeiger auf die E/A-Anforderung.
Rückgabewert
Keine
Bemerkungen
Der Name HwStorProcessServiceRequest ist Platzhaltertext für den tatsächlichen Routinenamen. Der eigentliche Prototyp dieser Routine ist in Storport.h wie folgt definiert:
typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
_In_ PVOID DeviceExtension,
_In_ PVOID Irp
);
Der Porttreiber ruft die HwStorProcessServiceRequest-Routine des virtuellen Storport-Miniporttreibers unter PASSIVE_LEVEL auf. Der virtuelle Miniporttreiber schließt den IRP durch Aufrufen der StorPortCompleteServiceIrp-Routine ab.
Beispiele
Um eine HwStorProcessServiceRequest-Rückruffunktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der Rückruffunktion identifiziert, die Sie definieren. 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 Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine HwStorProcessServiceRequest-Rückrufroutine namens MyHwProcessServiceRequest zu definieren, verwenden Sie den typ HW_PROCESS_SERVICE_REQUEST , wie in diesem Codebeispiel gezeigt:
HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;
Implementieren Sie dann Ihre Rückrufroutine wie folgt:
_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
_In_ PVOID DeviceExtension,
_In_ PVOID Irp
);
{
...
}
Der HW_PROCESS_SERVICE_REQUEST Funktionstyp ist in der Storport.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den HW_PROCESS_SERVICE_REQUEST 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 Storport-Treiber. Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | storport.h (Storport.h einschließen) |