NdisInitializeSListHead 宏 (ndis.h)

NdisInitializeSListHead 函式會初始化循序、交錯連結清單的前端。

語法

void NdisInitializeSListHead(
  [in]  SListHead
);

參數

[in] SListHead

要初始化之呼叫端提供清單前端的指標,其必須位於駐留記憶體中。 結構必須在64位平臺上對齊16位元組。

傳回值

備註

NdisInitializeSListHead 零初始化 SListHead 上的不透明清單前端,並將第一個專案指標設定為 NULL

每次插入清單或從清單中移除專案時,S-List 中的序號都會遞增。

S-List 中的所有項目都必須為非分頁。

任何使用 S-List 的驅動程式都必須提供微調鎖定給 NdisInterlockedPushEntrySList NdisInterlockedPopEntrySList 函式。 在對其中一個函式的初始呼叫之前,驅動程式必須使用 NdisAllocateSpinLock 函式來初始化微調鎖定。 若要防止死結,驅動程式在後續呼叫 NdisInterlockedPushEntrySListNdisInterlockedPopEntrySList,不得保留此微調鎖定

若要從非分頁記憶體管理固定大小專案的集區,請考慮使用 lookaside 清單,而不是 S-List。

重試 I/O 作業的驅動程序應該使用多任務連結的相互連結佇列和 NdisInterlockedInsertHeadListNdisInterlockedInsertTailListNdisInterlockedRemoveHeadList 函式,而不是 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 任何層級

另請參閱

NdisInitializeNPagedLo一sideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem