Share via


NdisInitializeListHead 매크로(ndis.h)

NdisInitializeListHead 함수는 두 배로 연결된 드라이버 유지 관리 큐를 초기화합니다.

구문

void NdisInitializeListHead(
  [in]  _ListHead
);

매개 변수

[in] _ListHead

상호 잠긴 큐 또는 목록의 헤드에 대한 드라이버 할당 비페이지 스토리지에 대한 포인터입니다.

반환 값

없음

설명

드라이버가 내부적으로 요청을 큐에 대기하는 경우 MiniportInitializeEx 함수 또는 프로토콜 드라이버의 DriverEntry 루틴에서 NdisInitializeListHead를 호출할 수 있습니다. 그러나 미니포트 드라이버는 NDIS 라이브러리가 미니포트 드라이버에 전송된 요청 및 패킷을 직렬화하기 때문에 내부 큐를 설정하지 않습니다.

내부 큐를 유지하는 모든 NDIS 드라이버는 드라이버 함수의 액세스를 큐에 대기 중인 항목에 동기화하는 역할을 합니다. NdisInterlockedXxxList 함수는 드라이버가 다중 프로세서 컴퓨터에서 실행 중인 경우에도 한 드라이버 함수만 지정된 순간에 큐에 액세스할 수 있도록 합니다. 큐는 호출자가 제공한 스핀 잠금으로 보호되기 때문입니다.

인터로킹된 큐의 경우 드라이버는 스핀 잠금을 위해 페이지가 없는 스토리지도 제공해야 합니다. NdisInterlockedXxxList 함수에 해당 스핀 잠금에 대한 포인터를 전달하기 전에 NdisAllocateSpinLock 함수를 사용하여 스핀 잠금을 초기화해야 합니다.

NdisInitializeListHead의 호출자는 모든 IRQL에서 실행할 수 있습니다. IRQL >= DISPATCH_LEVEL NdisInitializeListHead가 호출되면 ListHead에 대한 스토리지가 상주해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(NdisInitializeListHead(NDIS 5.1) 참조)에 대해 지원됩니다. Windows XP의 NDIS 5.1 드라이버(NdisInitializeListHead(NDIS 5.1) 참조)에 대해 지원됩니다.
대상 플랫폼 데스크톱
머리글 ndis.h(Ndis.h 포함)
IRQL 모든 수준(설명 섹션 참조)

추가 정보

NDIS 프로토콜 드라이버의 DriverEntry

MiniportInitializeEx

NdisAllocateSpinLock

NdisInterlockedInsertHeadList NdisInterlockedInsertTailList NdisInterlockedRemoveHeadList