Freigeben über


StorPortSynchronizeAccess-Funktion (storport.h)

Die StorPortSynchronizeAccess-Routine bietet synchronisierten Zugriff auf die Geräteerweiterung eines Miniporttreibers.

Syntax

STORPORT_API BOOLEAN StorPortSynchronizeAccess(
  [in]           PVOID                     HwDeviceExtension,
  [in]           PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
  [in, optional] PVOID                     Context
);

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Auftrag des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniporttreiber unmittelbar nach dem Aufruf des Miniporttreibers StorPortInitialize zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.

[in] SynchronizedAccessRoutine

Zeiger auf eine vom Aufrufer bereitgestellte Routine, deren Ausführung mit der Ausführung des ISR synchronisiert werden soll, der den Interruptobjekten zugeordnet ist. Einen Prototyp dieser Routine finden Sie im Abschnitt Hinweise weiter unten in diesem Thema.

[in, optional] Context

Zeiger auf einen Kontextbereich, der beim Aufruf an die vom Aufrufer bereitgestellte Rückrufroutine übergeben werden soll.

Rückgabewert

Der Rückgabewert aus SynchronizedAccessRoutine.

Hinweise

Miniporttreiber, die im Vollduplexmodus arbeiten und auf Informationen zugreifen, die zwischen ihrer HwStorStartIo-Routine und der Interrupt-Dienstroutine gemeinsam genutzt werden, müssen diese Routine verwenden, um synchronisiert auf die freigegebenen Daten zuzugreifen.

Der Miniporttreiber übergibt eine Rückrufroutine an StorPortSynchronizeAccess, und StorPortSynchronizeAccess ruft sie auf, nachdem der exklusive Zugriff auf vertrauliche Datenstrukturen garantiert wurde. Die Rückrufroutine des Miniporttreibers muss dem folgenden Prototyp entsprechen:

typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
  IN PVOID HwDeviceExtension,
 IN PVOID Context
  );

wobei HwDeviceExtension ein Zeiger auf die Hardwaregeräteerweiterung ist und Context nur ein Zeiger auf dieselben Kontextinformationen ist, die der Aufrufer beim Aufrufen von StorPortSynchronizeAccess angegeben hat.

Weitere Informationen finden Sie unter Synchronisierter Zugriff in nicht synchronisierten Miniport-Treiberroutinen.

Weitere Informationen zu Synchronisierungsroutinen finden Sie unter KeSynchronizeExecution.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
Bibliothek Storport.lib

Weitere Informationen

KeSynchronizeExecution