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 |