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
ExAcquireResourceExclusiveLite