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