NdisInterlockedPushEntrySList 매크로(ndis.h)

NdisInterlockedPushEntrySList 함수는 시퀀싱된 연결 목록의 헤드에 항목을 삽입합니다.

구문

void NdisInterlockedPushEntrySList(
        SListHead,
        SListEntry,
  [in]  Lock
);

매개 변수

SListHead

지정한 항목을 삽입할 이미 초기화된 시퀀스된 연결 목록의 헤드에 대한 포인터입니다.

SListEntry

삽입할 항목에 대한 포인터입니다.

[in] Lock

호출자가 현재 보유하지 않은 호출자가 제공한 스핀 잠금에 대한 포인터입니다.

반환 값

없음

설명

드라이버가 NdisInterlockedPushEntrySList 함수를 처음 호출하기 전에 다음을 사용하여 목록 헤드를 초기화해야 합니다. NdisInitializeSListHead 함수.

드라이버가 NdisInterlockedPushEntrySList를 호출할 때 지정된 Lock을 보유해서는 안 됩니다. 필요한 경우 드라이버는 NdisInterlockedPushEntrySList를 호출하기 전에 NdisReleaseSpinLock 함수를 호출해야 합니다. NdisInterlockedPushEntrySList 는 이 작업이 다중 프로세서로부터 안전한 방식으로 처리되도록 목록의 맨 앞에 ListEntry 를 삽입하기 전에 이 잠금 자체를 획득해야 합니다.

호출자는 NdisInterlocked에 대한 초기 호출 전에 NdisAllocateSpinLock 함수를 사용하여 초기화해야 하는 Lock에 대한 상주 스토리지를 제공해야 합니다. SList 루틴.

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

IRQL >= DISPATCH_LEVEL NdisInterlockedPushEntrySList가 호출되면 ListHead 매개 변수 및 목록 항목에 대한 스토리지가 상주해야 합니다.

요구 사항

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

추가 정보

NdisAllocateSpinLock

NdisFreeSpinLock

NdisInitializeSListHead

NdisInterlockedPopEntrySList

NdisQueryDepthSList

NdisReleaseSpinLock