Función RemoveEntryList (wdm.h)

La rutina RemoveEntryList quita una entrada de una lista doblemente vinculada de LIST_ENTRY estructuras.

Sintaxis

BOOLEAN RemoveEntryList(
  [in] PLIST_ENTRY Entry
);

Parámetros

[in] Entry

Puntero a la estructura LIST_ENTRY que representa la entrada que se va a quitar.

Valor devuelto

RemoveEntryList devuelve TRUE si, después de quitar la entrada designada, la lista está vacía. De lo contrario, la rutina devuelve FALSE para indicar que la lista resultante todavía contiene una o varias entradas. Para obtener información, vea la sección Comentarios a continuación.

Comentarios

RemoveEntryList quita la entrada estableciendo el miembro Flink de la entrada antes de Entry para que apunte a la entrada después de Entry y el miembro Blink de la entrada después de Entry para que apunte a la entrada antes de Entry.

El valor devuelto se puede usar para detectar cuándo se quita la última entrada de la lista. Una lista vacía consta solo de un encabezado de lista y de ninguna entrada de lista.

Normalmente, Entry apunta a una entrada de una lista y no al encabezado de la lista. Sin embargo, Entry puede apuntar a un encabezado de lista, en cuyo caso la rutina quita el encabezado de lista de la lista para generar una lista sin encabezado. Cuando RemoveEntryList se usa de esta manera, normalmente se debe omitir el valor devuelto. Para determinar si una lista está vacía, use la rutina IsListEmpty .

Para obtener información sobre el uso de esta rutina al implementar una lista vinculada doblemente, consulte Singly and Duplicay Linked Listas.

Los autores de llamadas de RemoveEntryList se pueden ejecutar en cualquier IRQL. Si se llama a RemoveEntryList en IRQL >= DISPATCH_LEVEL, el almacenamiento de las entradas de lista debe ser residente.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado wdm.h (incluye Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)
IRQL Cualquier nivel (consulte la sección Comentarios)
Reglas de cumplimiento de DDI DoubleExFreePool(storport)

Consulte también

InitializeListHead

IsListEmpty

RemoveHeadList

RemoveTailList