Condividi tramite


Macro NdisInitializeSListHead (ndis.h)

La funzione NdisInitializeSListHead inizializza la testa di un elenco sequenziale, interlocked, collegato.

Sintassi

void NdisInitializeSListHead(
  [in]  SListHead
);

Parametri

[in] SListHead

Puntatore all'elenco fornito dal chiamante da inizializzare, che deve essere in memoria residente. La struttura deve essere allineata a 16 byte su piattaforme a 64 bit.

Valore restituito

nessuno

Osservazioni

NdisInitializeSListHead zero inizializza la testa dell'elenco opaco in SListHead e imposta il puntatore alla prima voce su NULL.

Il numero di sequenza in un elenco S viene incrementato ogni volta che una voce viene inserita o rimossa dall'elenco.

Tutte le voci in un elenco S devono essere non paginate.

Qualsiasi driver che usa un elenco S deve fornire un blocco di rotazione all'oggetto NdisInterlockedPushEntrySList e Funzioni NdisInterlockedPopEntrySList . Prima della chiamata iniziale a una di queste funzioni, il driver deve inizializzare il blocco spin con la funzione NdisAllocateSpinLock . Per evitare deadlock, il driver non deve contenere questo blocco di spin quando effettua chiamate successive a NdisInterlockedPushEntrySList e NdisInterlockedPopEntrySList.

Per gestire un pool di voci di dimensioni fisse dalla memoria non con pagine, è consigliabile usare un elenco lookaside anziché un elenco S-List.

I driver che ritentano le operazioni di I/O devono usare una coda interlocked doubly e le funzioni NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList e NdisInterlockedRemoveHeadList, anziché un S-List.

Se NdisInitializeSListHead viene chiamato in IRQL >= DISPATCH_LEVEL, l'archiviazione per il parametro SListHead deve essere residente.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisInitializeSListHead (NDIS 5.1) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisInitializeSListHead (NDIS 5.1) in Windows XP.
Piattaforma di destinazione Desktop
Intestazione ndis.h (includere Ndis.h)
IRQL Qualsiasi livello

Vedi anche

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem