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
NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList