Función RemoveEntryList (wdm.h)
La rutina RemoveEntryList quita una entrada de una lista doblemente vinculada de LIST_ENTRY estructuras.
BOOLEAN RemoveEntryList(
[in] PLIST_ENTRY Entry
);
[in] Entry
Puntero a la estructura LIST_ENTRY que representa la entrada que se va a quitar.
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.
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.
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) |