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 |