Freigeben über


HW_PASSIVE_INITIALIZE_ROUTINE Rückruffunktion (storport.h)

Die HwStorPassiveInitializeRoutine Callbackroutine wird nach der HwStorInitialize-Routine aufgerufen, wenn sich die aktuelle IRQL an PASSIVE_LEVEL befindet. Die HwStorPassiveInitializeRoutine Callback wird festgelegt, indem die StorPortEnablePassiveInitialization Routine aufgerufen wird. Die Initialisierung der verzögerten Prozeduraufrufe (DPCs) des Miniports erfolgt im HwStorPassiveInitializeRoutine Rückruf.

Syntax

HW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine;

BOOLEAN HwPassiveInitializeRoutine(
  PVOID DeviceExtension
)
{...}

Parameter

DeviceExtension

Rückgabewert

Die HwStorPassiveInitializeRoutine Routine gibt TRUE zurück, wenn der Miniport erfolgreich die Verarbeitung von DPCs initialisiert hat, oder FALSE, wenn der Initialisierungsprozess fehlgeschlagen ist.

Bemerkungen

Die HwStorPassiveInitializeRoutine Routine sollte alle DPCs initialisieren, die der Miniporttreiber verwendet. Der Porttreiber ruft HwStorPassiveInitializeRoutine an PASSIVE_LEVEL ohne Drehsperren an. Interrupts werden aktiviert, während diese Routine aufgerufen wird.

Der Name HwStorPassiveInitializeRoutine ist nur ein Platzhalter. Der eigentliche Prototyp für diese Rückrufroutine wird in Storport.h wie folgt definiert:

typedef
BOOLEAN
(*PHW_PASSIVE_INITIALIZE_ROUTINE) (
  _In_ PVOID DeviceExtension
  );

Der Porttreiber ruft die HwStorPassiveInitializeRoutine Routine bei PASSIVE IRQL auf, ohne Drehsperren zu erwerben.

Beispiele

Um eine HwStorPassiveInitializeRoutine 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 HwStorPassiveInitializeRoutine Rückrufroutine zu definieren, die MyHwPassiveInitializeheißt, verwenden Sie den HW_PASSIVE_INITIALIZE_ROUTINE Typ, wie in diesem Codebeispiel gezeigt:

HW_PASSIVE_INITIALIZE_ROUTINE MyHwPassiveInitialize;

Implementieren Sie dann Ihre Rückrufroutine wie folgt:

_Use_decl_annotations_
BOOLEAN
MyHwPassiveInitialize (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

Der HW_PASSIVE_INITIALIZE_ROUTINE Funktionstyp wird in der Storport.h-Headerdatei 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 HW_PASSIVE_INITIALIZE_ROUTINE Funktionstyp 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)
IRQL- PASSIVE_LEVEL (Siehe Abschnitt "Hinweise".)

Siehe auch

HwStorInitialize-

StorPortEnablePassiveInitialization