NdisInitializeSListHead 매크로(ndis.h)
NdisInitializeSListHead 함수는 시퀀싱된 연동형 연결 목록의 헤드를 초기화합니다.
통사론
void NdisInitializeSListHead(
[in] SListHead
);
매개 변수
[in] SListHead
초기화할 호출자 제공 목록 헤드에 대한 포인터로, 상주 메모리에 있어야 합니다. 구조체는 64비트 플랫폼에서 16비트 정렬되어야 합니다.
반환 값
없음
발언
NdisInitializeSListHeadSListHead 불투명 목록 헤드를 0으로 초기화하고 첫 번째 항목 포인터를 NULL설정합니다.
S-List의 시퀀스 번호는 항목이 목록에 삽입되거나 제거될 때마다 증가합니다.
S-List의 모든 항목은 페이지가 없어야 합니다.
S-List를 사용하는 모든 드라이버는 NdisInterlockedPushEntrySList 및 NdisInterlockedPopEntrySList 함수입니다. 이러한 함수 중 하나를 처음 호출하기 전에 드라이버는 NdisAllocateSpinLock 함수를 사용하여 스핀 잠금을 초기화해야 합니다. 교착 상태를 방지하기 위해 드라이버 NdisInterlockedPushEntrySList 및 NdisInterlockedPopEntrySList후속 호출을 수행할 때 이 스핀 잠금 보유해서는 안 됩니다.
페이지가 없는 메모리에서 고정 크기 항목의 풀을 관리하려면 S-List 대신 lookaside 목록을 사용하는 것이 좋습니다.
I/O 작업을 다시 시도하는 드라이버는 두 배로 연결된 인터로크된 큐와 NdisInterlockedInsertHeadList, NdisInterlockedInsertTailList및 S-List 대신 NdisInterlockedRemoveHeadList 함수를 사용해야 합니다.
NdisInitializeSListHead IRQL >= DISPATCH_LEVEL 호출되는 경우 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 | 모든 수준 |