NdisInitializeSListHead 巨集 (ndis.h)
NdisInitializeSListHead 函式會初始化循序、相互鎖定、單選連結清單的前端。
語法
void NdisInitializeSListHead(
[in] SListHead
);
參數
[in] SListHead
要初始化之呼叫端提供清單標頭的指標,其必須位於常駐記憶體中。 結構必須在64位平臺上對齊16位元組。
傳回值
沒有
言論
NdisInitializeSListHead 零初始化 SListHead 的不透明清單標頭,並將第一個項目指標設定為 NULL。
每次插入或從清單中移除專案時,S-List 中的序號都會遞增。
S-List 中的所有項目都必須是非分頁。
任何使用 S-List 的驅動程式都必須提供微調鎖定給 NdisInterlockedPushEntrySList 和 NdisInterlockedPopEntrySList 函式。 在對上述任一函式進行初始呼叫之前,驅動程式必須使用 NdisAllocateSpinLock 函式初始化微調鎖定。 若要避免死結,驅動程式 在後續呼叫 NdisInterlockedPushEntrySList 和 NdisInterlockedPopEntrySList時,不得保留此微調鎖定。
若要從非分頁記憶體管理固定大小的專案集區,請考慮使用外觀清單,而不是 S-List。
重試 I/O 作業的驅動程式應該使用兩倍鏈接的聯結佇列和 NdisInterlockedInsertHeadList、NdisInterlockedInsertTailList,以及 NdisInterlockedRemoveHeadList 函式,而不是 S-List。
如果在 IRQL >= DISPATCH_LEVEL 呼叫 NdisInitializeSListHead,則 SListHead 參數的記憶體必須是常駐的。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisInitializeSListHead (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 NdisInitializeSListHead (NDIS 5.1)。 |
目標平臺 | 桌面 |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | 任何層級 |