Condividi tramite


Macro NdisInitializeSListHead (ndis.h)

La funzione NdisInitializeSListHead inizializza l'intestazione di un elenco collegato sequenziato, interlocked e 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 inizializza l'intestazione elenco opaca in SListHead e imposta il puntatore di primo ingresso 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 di pagina.

Tutti i driver che usano un elenco S devono fornire un blocco di selezione al NdisInterlockedPushEntrySList e funzioni di NdisInterlockedPopEntrySList. Prima della chiamata iniziale a una di queste funzioni, il driver deve inizializzare il blocco di selezione con la funzione NdisAllocateSpinLock. Per evitare deadlock, il driver non deve contenere questo blocco di selezione quando effettua chiamate successive a NdisInterlockedPushEntrySList e NdisInterlockedPopEntrySList.

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

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

Se NdisInitializeSListHead viene chiamato in IRQL >= DISPATCH_LEVEL, lo spazio di archiviazione per il parametro SListHead deve essere residente.

Fabbisogno

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 (include Ndis.h)
IRQL Qualsiasi livello

Vedere anche

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem