NdisInitializeSListHead 매크로(ndis.h)

NdisInitializeSListHead 함수는 시퀀싱된 연동형 연결 목록의 헤드를 초기화합니다.

구문

void NdisInitializeSListHead(
  [in]  SListHead
);

매개 변수

[in] SListHead

초기화할 호출자 제공 목록 헤드에 대한 포인터로, 상주 메모리에 있어야 합니다. 구조체는 64비트 플랫폼에서 16비트 정렬되어야 합니다.

반환 값

없음

설명

NdisInitializeSListHeadSListHead 에서 불투명 목록 헤드를 0으로 초기화하고 첫 번째 항목 포인터를 NULL로 설정합니다.

S-List의 시퀀스 번호는 항목이 목록에 삽입되거나 제거될 때마다 증가합니다.

S-List의 모든 항목은 페이징되지 않아야 합니다.

S-List를 사용하는 모든 드라이버는 에 스핀 잠금을 제공해야 합니다. NdisInterlockedPushEntrySList NdisInterlockedPopEntrySList 함수. 이러한 함수 중 하나에 대한 초기 호출 전에 드라이버는 NdisAllocateSpinLock 함수를 사용하여 스핀 잠금을 초기화해야 합니다. 교착 상태를 방지하려면 드라이버가 NdisInterlockedPushEntrySListNdisInterlockedPopEntrySList를 후속 호출할 때 이 스핀 잠금을 보유하지 않아야 합니다.

비페이지 메모리에서 고정 크기 항목의 풀을 관리하려면 S-List 대신 lookaside 목록을 사용하는 것이 좋습니다.

I/O 작업을 다시 시도하는 드라이버는 S-List 대신 이중으로 연결된 상호 잠긴 큐와 NdisInterlockedInsertHeadList, NdisInterlockedInsertTailListNdisInterlockedRemoveHeadList 함수를 사용해야 합니다.

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 모든 수준

추가 정보

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem