Funzione RtlDeleteElementGenericTableAvl (ntddk.h)
La routine RtlDeleteElementGenericTableAvl elimina un elemento da una tabella generica.
Sintassi
NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
[in] PRTL_AVL_TABLE Table,
[in] PVOID Buffer
);
Parametri
[in] Table
Puntatore alla tabella generica (RTL_AVL_TABLE). La tabella deve essere stata inizializzata chiamando RtlInitializeGenericTableAvl.
[in] Buffer
Puntatore a un buffer allocato dal chiamante contenente un valore che identifica in modo univoco l'elemento da eliminare.
Valore restituito
RtlDeleteElementGenericTableAvl restituisce TRUE se l'elemento è stato eliminato correttamente, FALSE in caso contrario.
Osservazioni
RtlDeleteElementGenericTableAvl chiama il CompareRoutine e FreeRoutine registrati nella chiamata a RtlInitializeGenericTableAvl.
Per impostazione predefinita, il sistema operativo usa alberi splay per implementare tabelle generiche, ma il RtlDeleteElementGenericTableAvl routine funziona solo con alberi Adelson-Velsky/Landis (AVL). Per configurare le routine di tabella generiche per l'uso di alberi AVL anziché alberi di riproduzione nel driver, inserire l'istruzione define seguente in un file di intestazione comune prima di includere Ntddk.h:
#define RTL_USE_AVL_TABLES 0
Se RTL_USE_AVL_TABLES non è definito, è necessario utilizzare il formato AVL delle routine di tabella generiche. Ad esempio, usare la routine RtlDeleteElementGenericTableAvl anziché RtlDeleteElementGenericTable. Nella chiamata a RtlDeleteElementGenericTableAvl, il chiamante deve passare una struttura di tabella RTL_AVL_TABLE anziché RTL_GENERIC_TABLE.
Chiamanti del Rtl.. Le routine genericTableAvl sono responsabili della sincronizzazione esclusiva dell'accesso alla tabella generica. Un mutex veloce esclusivo è il meccanismo di sincronizzazione più efficiente da usare a questo scopo.
I chiamanti di RtlDeleteElementGenericTableAvl devono essere eseguiti in irQL < DISPATCH_LEVEL se una delle condizioni seguenti è bloccata:
- La memoria allocata dal chiamante in table o in buffer è paginabile.
- Il chiamante fornito CompareRoutine o FreeRoutine contiene codice pageable.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows XP. |
piattaforma di destinazione | Universale |
intestazione | ntddk.h (include Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | Vedere la sezione Osservazioni. |