다음을 통해 공유


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 작업을 다시 시도하는 드라이버는 두 배로 연결된 인터로크된 큐와 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 모든 수준

참고 항목

NdisInitializeNPagedLookasideList

NdisInterlockedPopEntrySList

NdisInterlockedPushEntrySList

NdisQueryDepthSList

NdisQueueIoWorkItem