Compartir a través de


Macro NdisInitializeListHead (ndis.h)

La función NdisInitializeListHead inicializa una cola doblemente vinculada y mantenida por el controlador.

Sintaxis

void NdisInitializeListHead(
  [in]  _ListHead
);

Parámetros

[in] _ListHead

Puntero al almacenamiento no paginado asignado por el controlador para el encabezado de la cola o lista interbloqueada.

Valor devuelto

None

Observaciones

Se puede llamar a NdisInitializeListHead desde una función MiniportInitializeEx o desde una rutina DriverEntry del controlador de protocolo si el controlador solicita internamente las solicitudes. Sin embargo, los controladores de minipuerto rara vez configuran colas internas porque la biblioteca NDIS serializa las solicitudes y los paquetes enviados a los controladores de minipuerto.

Cualquier controlador NDIS que mantenga una cola interna es responsable de sincronizar los accesos de las funciones del controlador a las entradas en cola. Las funciones NdisInterlockedXxxList garantizan que solo una función de controlador pueda acceder a las entradas en cola en un momento dado, incluso si el controlador se ejecuta en un equipo multiprocesador, ya que la cola está protegida por un bloqueo de número proporcionado por el autor de la llamada.

Para una cola interbloqueada, el controlador también debe proporcionar almacenamiento no paginado para un bloqueo de número. Debe inicializar el bloqueo de número con la función NdisAllocateSpinLock antes de pasar un puntero a ese bloqueo de número a cualquiera de las funciones NdisInterlockedXxxList .

Los autores de llamadas de NdisInitializeListHead se pueden ejecutar en cualquier IRQL. Si se llama a NdisInitializeListHead en IRQL >= DISPATCH_LEVEL el almacenamiento de ListHead debe ser residente.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisInitializeListHead (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta NdisInitializeListHead (NDIS 5.1)) en Windows XP.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
IRQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

DriverEntry de controladores de protocolo NDIS

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList