Freigeben über


HW_PROCESS_SERVICE_REQUEST Rückruffunktion (storport.h)

Die HwStorProcessServiceRequest Rückrufroutine empfängt das Gerätesteuerungs-IRP, das die IOCTL_MINIPORT_PROCESS_SERVICE_IRP Anforderung enthält, wenn ein Aufrufer, z. B. ein Benutzermodusanwendungs- oder Kernelmodustreiber, einen "Reverse callback"-Vorgang erfordert. Die E/A-Funktion wird vom Miniporttreiber abgeschlossen, wenn der Anrufer etwas anweisen muss oder der Anrufer 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

Nichts

Bemerkungen

Der Name HwStorProcessServiceRequest ist Platzhaltertext für den tatsächlichen Routinenamen. Der eigentliche Prototyp dieser Routine wird 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 Storport-Miniporttreibers bei PASSIVE_LEVEL auf. Der virtuelle Miniporttreiber schließt das IRP durch Aufrufen der StorPortCompleteServiceIrp Routine ab.

Beispiele

Um eine HwStorProcessServiceRequest Rückruffunktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der rückruffunktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine HwStorProcessServiceRequest Rückrufroutine zu definieren, die MyHwProcessServiceRequest-heißt, verwenden Sie den HW_PROCESS_SERVICE_REQUEST Typ 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 wird in der Headerdatei Storport.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den funktionstyp HW_PROCESS_SERVICE_REQUEST in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- storport.h (include Storport.h)

Siehe auch

IOCTL_MINIPORT_PROCESS_SERVICE_IRP

StorPortCompleteServiceIrp