Freigeben über


ExEnterCriticalRegionAndAcquireResourceExclusive-Funktion (wdm.h)

Die ExEnterCriticalRegionAndAcquireResourceExclusive-Routine gelangt zunächst in eine kritische Region und erhält dann exklusiven Zugriff auf die angegebene Ressource.

Syntax

PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
  PERESOURCE Resource
);

Parameter

Resource

[in, out] Ein Zeiger auf die Ressource, die für exklusiven Zugriff abgerufen werden soll. Dieser Parameter verweist auf eine vom Aufrufer zugeordnete ERESOURCE-Struktur . Der Aufrufer hat diese Struktur zuvor aus einem nicht auslagerten Pool zugeordnet und durch Aufrufen der Routine ExInitializeResourceLite oder ExReinitializeResourceLite initialisiert.

Rückgabewert

Ein Zeiger auf eine undurchsichtige Systemstruktur. Treiber sollten diesen Rückgabewert ignorieren.

Hinweise

Wenn diese Routine aufgerufen wird, wenn die angegebene Ressource nicht sofort für den exklusiven Zugriff verfügbar ist, wird der aufrufende Thread blockiert, bis die Ressource verfügbar ist.

Während ein Treiberthread in der kritischen Region ausgeführt wird, werden die Benutzer-APCs und normalen Kernel-APCs des Treibers nicht ausgeführt. Spezielle Kernel-APCs werden weiterhin ausgeführt. Weitere Informationen zu diesen APC-Typen finden Sie unter Typen von APCs.

Durch die vorübergehende Deaktivierung normaler Kernel-APCs verhindert ExEnterCriticalRegionAndAcquireResourceExclusive , dass ein aufrufende Thread auf passiver Ebene von einem APC vorzeitig entfernt wird, während der Thread eine freigegebene Ressource enthält, auf die der APC möglicherweise zugreifen kann.

Der aufrufende Thread sollte in der kritischen Region verbleiben und die angegebene Ressource nicht länger als erforderlich enthalten. Um die angegebene Ressource freizugeben und die kritische Region zu verlassen, rufen Sie die Routine ExReleaseResourceAndLeaveCriticalRegion auf.

Weitere Informationen zur Verwendung einer ERESOURCE-Struktur zum Synchronisieren des exklusiven Zugriffs auf eine Ressource finden Sie unter Einführung in ERESOURCE-Routinen. Weitere Informationen zum Eingeben und Verlassen einer kritischen Region finden Sie unter Kritische Regionen und geschützte Regionen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2003 SP1
Kopfzeile wdm.h
IRQL <= APC_LEVEL
DDI-Complianceregeln CriticalRegions(wdm), HwStorPortProhibitedDIs(storport)

Weitere Informationen

ERESOURCE

ExAcquireResourceExclusiveLite

ExInitializeResourceLite

ExReinitializeResourceLite

ExReleaseResourceLite

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion