Funzione ExAcquireRundownProtection (wdm.h)
La routine ExAcquireRundownProtection tenta di acquisire la protezione di run-down su un oggetto condiviso in modo che il chiamante possa accedere in modo sicuro all'oggetto.
Sintassi
BOOLEAN ExAcquireRundownProtection(
[in, out] PEX_RUNDOWN_REF RunRef
);
Parametri
[in, out] RunRef
Puntatore a una struttura EX_RUNDOWN_REF inizializzata da una chiamata precedente alla routine ExInitializeRundownProtection. Le routine di protezione di run-down utilizzano questa struttura per tenere traccia dello stato di esecuzione dell'oggetto condiviso associato. Questa struttura è opaca per i driver.
Valore restituito
exAcquireRundownProtection restituisce TRUE se la routine acquisisce correttamente la protezione di run-down per il chiamante. In caso contrario, restituisce FALSE. Un valore restituito di FALSE indica che l'esecuzione dell'oggetto è stata avviata e che l'oggetto deve essere considerato non valido.
Osservazioni
Per accedere in modo sicuro a un oggetto condiviso, un driver chiama ExAcquireRundownProtection per acquisire la protezione di run-down sull'oggetto. La routine restituisce TRUE per indicare che la protezione da run-down è attiva. Quando è attiva la protezione da run-down, il driver può accedere in modo sicuro all'oggetto senza rischiare che l'oggetto venga eliminato prima del completamento dell'accesso.
Purché il blocco di run-down stesso non sia di pagina, questa funzione può essere chiamata in DISPATCH_LEVEL.
Dopo aver completato l'accesso, il driver chiama ExReleaseRundownProtection per rilasciare la protezione di run-down acquisita in precedenza.
Se exAcquireRundownProtection restituisce FALSE, l'oggetto non è più accessibile. Ad esempio, se l'oggetto deve essere sostituito con un nuovo oggetto, il chiamante deve attendere che il proprietario dell'oggetto crei il nuovo oggetto e quindi negoziare l'accesso al nuovo oggetto.
Per altre informazioni, vedere Run-Down Protection.