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 di ERESOURCE allocata dal chiamante. Il chiamante ha allocato in precedenza questa struttura dal pool non di paging e l'ha inizializzata chiamando la routineexInitializeResourceLiteo ExReinitializeResourceLite.
Valore restituito
Puntatore a una struttura di sistema opaca. I driver devono ignorare questo valore restituito.
Osservazioni
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.
Mentre un thread del driver viene eseguito nell'area critica, le API utente del driver e le NORMALI API del kernel non vengono eseguite. Le API del kernel speciali vengono ancora eseguite. Per altre informazioni su questi tipi APC, vedere Tipi di API.
Disabilitando temporaneamente le normali API 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 potrebbe tentare di accedere.
Il thread chiamante deve rimanere nell'area critica e contenere la risorsa specificata per non più di quanto sia necessario. Per rilasciare la risorsa specificata e lasciare l'area critica, chiamare la routine ex ExReleaseResourceAndLeaveCriticalRegion.
Per altre informazioni sull'uso di una struttura diERESOURCEper 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.
Fabbisogno
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), HwStorPortProhibitedDDDIs(storport) |
Vedere anche
ExAcquireResourceExclusiveLite