Función RtlDeleteElementGenericTableAvl (ntddk.h)
La rutina RtlDeleteElementGenericTableAvl elimina un elemento de una tabla genérica.
Sintaxis
NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
[in] PRTL_AVL_TABLE Table,
[in] PVOID Buffer
);
Parámetros
[in] Table
Puntero a la tabla genérica (RTL_AVL_TABLE). La tabla debe haberse inicializado llamando a RtlInitializeGenericTableAvl.
[in] Buffer
Puntero a un búfer asignado por el autor de la llamada que contiene un valor que identifica de forma única el elemento que se va a eliminar.
Valor devuelto
RtlDeleteElementGenericTableAvl devuelve TRUE si el elemento se eliminó correctamente, FALSE de lo contrario.
Observaciones
RtlDeleteElementGenericTableAvl llama al CompareRoutine y FreeRoutine que se registraron en la llamada a RtlInitializeGenericTableAvl.
De forma predeterminada, el sistema operativo usa árboles de reproducción para implementar tablas genéricas, pero la RtlDeleteElementGenericTableAvl rutina solo funciona con árboles Adelson-Velsky/Landis (AVL). Para configurar las rutinas de tabla genéricas para usar árboles AVL en lugar de árboles de reproducción en el controlador, inserte la siguiente instrucción define en un archivo de encabezado común antes de incluir Ntddk.h:
#define RTL_USE_AVL_TABLES 0
Si no se define RTL_USE_AVL_TABLES, debe usar el formulario AVL de las rutinas de tabla genéricas. Por ejemplo, use la rutina RtlDeleteElementGenericTableAvl en lugar de RtlDeleteElementGenericTable. En la llamada a RtlDeleteElementGenericTableAvl, el autor de la llamada debe pasar una estructura de tabla de RTL_AVL_TABLE en lugar de RTL_GENERIC_TABLE.
Llamadores del Rtl.. GenericTableAvl rutinas son responsables de sincronizar exclusivamente el acceso a la tabla genérica. Una exclusión mutua rápida exclusiva es el mecanismo de sincronización más eficaz que se usará para este propósito.
Los autores de llamadas de RtlDeleteElementGenericTableAvl deben ejecutarse en irQL < DISPATCH_LEVEL si alguna de las condiciones siguientes contiene:
- La memoria asignada por el autor de la llamada en Table o en buffer es paginable.
- El CompareRoutine proporcionado por el autor de la llamada o FreeRoutine contiene código paginable.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows XP. |
de la plataforma de destino de | Universal |
encabezado de | ntddk.h (incluya Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | Consulte la sección Comentarios. |