Funzione KeEnterCriticalRegion (ntddk.h)
La routine KeEnterCriticalRegion disabilita temporaneamente l'esecuzione di normali API kernel, ma non impedisce l'esecuzione di API kernel speciali.
Sintassi
void KeEnterCriticalRegion();
Valore restituito
nessuno
Osservazioni
Un driver chiama questa routine per immettere un'area critica in cui l'esecuzione di normali API kernel viene posticipata fino a quando questo driver termina l'area critica chiamando la routine KeLeaveCriticalRegion . Qualsiasi chiamante di KeEnterCriticalRegion deve chiamare KeLeaveCriticalRegion il più rapidamente possibile dopo aver immesso un'area critica.
I driver di livello più alto possono chiamare KeEnterCriticalRegion durante l'esecuzione nel contesto del thread che ha richiesto l'operazione di I/O corrente.
Un thread che si trova all'interno di un'area critica include SIA API utente che API kernel normali disabilitate, ma non API kernel speciali. Per altre informazioni su questi tipi APC, vedere Tipi di API.
Le aree critiche possono essere immesse in modo ricorsivo e ogni chiamata a KeEnterCriticalRegion deve avere una chiamata corrispondente a KeLeaveCriticalRegion.
Un driver può usare un'area critica per acquisire e rilasciare l'accesso esclusivo a una risorsa condivisa. In questo caso, le routine ExEnterCriticalRegionAndAcquireResourceExclusive e ExReleaseResourceAndLeaveCriticalRegion possono essere usate anziché le routine KeEnterCriticalRegion e KeLeaveCriticalRegion . Per altre informazioni, vedere l'esempio di codice in ExEnterCriticalRegionAndAcquireResourceExclusive.
Per altre informazioni sulle API, vedere Chiamate di procedure asincrone.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Universale |
Intestazione | ntddk.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Regole di conformità DDI | CriticalRegions(wdm), HwStorPortProhibitedDDDIs(storport), IrqlKeApcLte2(wdm), WithinCriticalRegion(storport), WithinCriticalRegion(storport), WithinCriticalRegion(wdm) |
Vedi anche
ExEnterCriticalRegionAndAcquireResourceExclusive