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) |