Freigeben über


ExEnterCriticalRegionAndAcquireResourceExclusive-Funktion (wdm.h)

Die ExEnterCriticalRegionAndAcquireResourceExclusive Routine wechselt zuerst in einen kritischen Bereich und erwirbt 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 erworben werden soll. Dieser Parameter verweist auf eine vom Aufrufer zugeordnete ERESOURCE--Struktur. Der Aufrufer hat diese Struktur zuvor aus einem nicht seitengebundenen Pool zugewiesen und durch Aufrufen der ExInitializeResourceLite oder ExReinitializeResourceLite Routine initialisiert.

Rückgabewert

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

Bemerkungen

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 im kritischen Bereich 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 vorübergehendes Deaktivieren normaler Kernel-APCs verhindert ExEnterCriticalRegionAndAcquireResourceExclusive verhindert, dass ein Aufrufthread auf passiver Ebene von einem APC vorgelassen wird, während der Thread eine freigegebene Ressource enthält, auf die der APC möglicherweise zugreifen kann.

Der aufrufende Thread sollte im kritischen Bereich verbleiben und die angegebene Ressource nicht länger als erforderlich halten. Um die angegebene Ressource freizugeben und den kritischen Bereich zu verlassen, rufen Sie die ExReleaseResourceAndLeaveCriticalRegion Routine auf.

Weitere Informationen zur Verwendung einer ERESOURCE--Struktur zum Synchronisieren des exklusiven Zugriffs auf eine Ressource finden Sie unter Einführung in ERESOURCE Routines. Weitere Informationen zum Betreten und Verlassen eines kritischen Bereichs finden Sie unter Kritische Regionen und geschützten Regionen.

Anforderungen

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

Siehe auch

ERESOURCE-

ExAcquireResourceExclusiveLite

ExInitializeResourceLite-

ExReinitializeResourceLite-

ExReleaseResourceLite-

ExReleaseResourceAndLeaveCriticalRegion

KeEnterCriticalRegion

KeLeaveCriticalRegion