Função RemoveEntryList (wdm.h)

A rotina RemoveEntryList remove uma entrada de uma lista duplamente vinculada de estruturas de LIST_ENTRY .

Sintaxe

BOOLEAN RemoveEntryList(
  [in] PLIST_ENTRY Entry
);

Parâmetros

[in] Entry

Ponteiro para a estrutura LIST_ENTRY que representa a entrada a ser removida.

Retornar valor

RemoveEntryList retornará TRUE se, após a remoção da entrada designada, a lista estiver vazia. Caso contrário, a rotina retornará FALSE para indicar que a lista resultante ainda contém uma ou mais entradas. Para obter informações, consulte a seção Comentários abaixo.

Comentários

RemoveEntryList remove a entrada definindo o membro Flink da entrada antes de Entry para apontar para a entrada após Entry e o membro Blink da entrada após Entry para apontar para a entrada antes de Entry.

O valor retornado pode ser usado para detectar quando a última entrada é removida da lista. Uma lista vazia consiste apenas em um cabeçalho de lista e nenhuma entrada de lista.

Normalmente, Entry aponta para uma entrada em uma lista e não para o cabeçalho da lista. No entanto, Entry pode apontar para um cabeçalho de lista, nesse caso, a rotina remove o cabeçalho da lista para produzir uma lista sem cabeçalho. Quando RemoveEntryList é usado dessa forma, o valor retornado normalmente deve ser ignorado. Para determinar se uma lista está vazia, use a rotina IsListEmpty .

Para obter informações sobre como usar essa rotina ao implementar uma lista duplamente vinculada, consulte Singly e Doubly Linked Listas.

Os chamadores de RemoveEntryList podem estar em execução em qualquer IRQL. Se RemoveEntryList for chamado em IRQL >= DISPATCH_LEVEL, o armazenamento para as entradas da lista deverá ser residente.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL Qualquer nível (consulte a seção Comentários)
Regras de conformidade da DDI DoubleExFreePool(storport)

Confira também

InitializeListHead

IsListEmpty

RemoveHeadList

RemoveTailList