Funzione ExEnterCriticalRegionAndAcquireResourceExclusive (wdm.h)
La routine ExEnterCriticalRegionAndAcquireResourceExclusive prima entra in un'area critica e quindi acquisisce l'accesso esclusivo alla risorsa specificata.
Sintassi
PVOID ExEnterCriticalRegionAndAcquireResourceExclusive(
PERESOURCE Resource
);
Parametri
Resource
[in, out] Puntatore alla risorsa da acquisire per l'accesso esclusivo. Questo parametro punta a una struttura ERESOURCE allocata dal chiamante. Il chiamante ha allocato in precedenza questa struttura dal pool non di paging e l'ha inizializzata chiamando la routine ExInitializeResourceLite o ExReinitializeResourceLite .
Valore restituito
Puntatore a una struttura di sistema opaca. I driver devono ignorare questo valore restituito.
Commenti
Se questa routine viene chiamata quando la risorsa specificata non è immediatamente disponibile per l'accesso esclusivo, il thread chiamante viene bloccato fino a quando la risorsa non è disponibile.
Anche se un thread driver viene eseguito nell'area critica, le API utente del driver e le NORMALI API kernel non vengono eseguite. Le API del kernel speciali vengono ancora eseguite. Per altre informazioni su questi tipi di APC, vedere Tipi di APC.
Disabilitando temporaneamente i normali APC del kernel, ExEnterCriticalRegionAndAcquireResourceExclusive impedisce a un thread chiamante a livello passivo di essere preceduto da un APC mentre il thread contiene una risorsa condivisa a cui l'APC potrebbe tentare di accedere.
Il thread chiamante deve rimanere nell'area critica e conservare la risorsa specificata per non più di quanto sia necessario. Per rilasciare la risorsa specificata e lasciare l'area critica, chiamare la routine ExReleaseResourceAndLeaveCriticalRegion .
Per altre informazioni sull'uso di una struttura ERESOURCE per sincronizzare l'accesso esclusivo a una risorsa, vedere Introduzione alle routine ERESOURCE. Per altre informazioni sull'immissione e l'uscita da un'area critica, vedere Aree critiche e aree protette.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2003 SP1 |
Intestazione | wdm.h |
IRQL | <= APC_LEVEL |
Regole di conformità DDI | CriticalRegions(wdm), HwStorPortProhibitedDDIs(storport) |
Vedi anche
ExAcquireResourceExclusiveLite