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 時,不得保留此微調鎖定。
若要從非分頁記憶體管理固定大小專案的集區,請考慮使用 lookaside 清單,而不是 S-List。
重試 I/O 作業的驅動程序應該使用多任務連結的相互連結佇列和 NdisInterlockedInsertHeadList、 NdisInterlockedInsertTailList 和 NdisInterlockedRemoveHeadList 函式,而不是 S-List。
如果在 IRQL >= DISPATCH_LEVEL 呼叫 NdisInitializeSListHead,SListHead 參數的記憶體必須位於其中。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式, (請參閱 Windows Vista 中的 NdisInitializeSListHead (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 NdisInitializeSListHead (NDIS 5.1) ) 。 |
目標平台 | 桌面 |
標頭 | ndis.h (包含 Ndis.h) |
IRQL | 任何層級 |