Compartilhar via


Função RtlDeleteElementGenericTableAvl (ntddk.h)

A rotina RtlDeleteElementGenericTableAvl exclui um elemento de uma tabela genérica.

Sintaxe

NTSYSAPI BOOLEAN RtlDeleteElementGenericTableAvl(
  [in] PRTL_AVL_TABLE Table,
  [in] PVOID          Buffer
);

Parâmetros

[in] Table

Um ponteiro para a tabela genérica (RTL_AVL_TABLE). A tabela deve ter sido inicializada chamando RtlInitializeGenericTableAvl.

[in] Buffer

Um ponteiro para um buffer alocado pelo chamador que contém um valor que identifica exclusivamente o elemento a ser excluído.

Retornar valor

RtlDeleteElementGenericTableAvl retornará TRUE se o elemento tiver sido excluído com êxito; caso contrário, FALSE .

Comentários

RtlDeleteElementGenericTableAvl chama CompareRoutine e FreeRoutine que foram registrados na chamada para RtlInitializeGenericTableAvl.

Por padrão, o sistema operacional usa árvores de reprodução para implementar tabelas genéricas, mas a rotina RtlDeleteElementGenericTableAvl só funciona com árvores Desvelsky/Landis (AVL). Para configurar as rotinas de tabela genéricas para usar árvores AVL em vez de árvores de reprodução no driver, insira a seguinte instrução define em um arquivo de cabeçalho comum antes de incluir Ntddk.h:

#define RTL_USE_AVL_TABLES 0

Se RTL_USE_AVL_TABLES não estiver definido, você deverá usar a forma AVL das rotinas de tabela genéricas. Por exemplo, use a rotina RtlDeleteElementGenericTableAvl em vez de RtlDeleteElementGenericTable. Na chamada para RtlDeleteElementGenericTableAvl, o chamador deve passar uma estrutura de tabela RTL_AVL_TABLE em vez de RTL_GENERIC_TABLE.

Chamadores do Rtl. As rotinas GenericTableAvl são responsáveis por sincronizar exclusivamente o acesso à tabela genérica. Um mutex rápido exclusivo é o mecanismo de sincronização mais eficiente a ser usado para essa finalidade.

Os chamadores de RtlDeleteElementGenericTableAvl devem estar em execução no IRQL < DISPATCH_LEVEL se uma das seguintes condições for mantida:

  • A memória alocada pelo chamador em Table ou em Buffer é paginável.
  • O CompareRoutine ou FreeRoutine fornecido pelo chamador contém código paginável.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows XP.
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Consulte a seção Observações.

Confira também

RtlInitializeGenericTableAvl

RtlInsertElementGenericTableAvl