Share via


NDIS_PD_FLUSH_QUEUE 콜백 함수(ndis.h)

PD(PacketDirect) 플랫폼은 PD 지원 미니포트 드라이버의 PDFlushQueue 함수를 호출하여 지정된 큐를 플러시하여 큐에서 아직 완료되지 않은 항목이 곧 완료되도록 합니다.

참고NDIS_PD_FLUSH_QUEUE 형식을 사용하여 함수를 선언해야 합니다. 자세한 내용은 다음 예제 섹션을 참조하세요.

 

구문

NDIS_PD_FLUSH_QUEUE NdisPdFlushQueue;

VOID() NdisPdFlushQueue(
  [in, out] NDIS_PD_QUEUE *Queue
)
{...}

매개 변수

[in, out] Queue

플러시할 큐입니다. 자세한 내용은 NDIS_PD_QUEUE 구조를 참조하세요.

반환 값

이 콜백 함수는 값을 반환하지 않습니다.

설명

호출자는 큐를 닫기 전에 이전에 게시된 모든 요청을 대기하고 드레이닝해야 합니다. 호출자는 이 호출 후 큐에 더 이상 PD_BUFFER 구조를 게시해서는 안됩니다. 이 루틴의 기본 사용 사례는 수신 큐를 플러시하는 것입니다. 들어오는 트래픽이 없는 경우 게시된 버퍼는 수신 큐에 무기한 배치되며 큐를 닫기 전에 플러시하여 드레이닝해야 합니다. 전송 요청이 무기한 보류되지 않으므로 실제로 전송 큐에 대해 동일한 문제가 존재하지 않습니다. 그러나 공급자는 전송 큐에 대한 플러시 호출을 적용해야 합니다(공급자가 보류 중인 전송 요청이 곧 완료된다는 것을 알고 있는 경우 이는 L2 흐름 제어를 제외한 일반적인 경우).

PDFlushQueue 함수를 정의하려면 먼저 정의 중인 함수의 형식을 식별하는 함수 선언을 제공해야 합니다. Windows는 드라이버에 대한 함수 형식 집합을 제공합니다. 함수 형식을 사용하여 함수를 선언하면 드라이버에 대한 코드 분석, SDV( 정적 드라이버 검증 도구 ) 및 기타 확인 도구에서 오류를 찾을 수 있으며 Windows 운영 체제용 드라이버를 작성하기 위한 요구 사항입니다.

예를 들어 " MyPDFlushQueue"라는 PDFlushQueue 함수를 정의하려면 다음 코드 예제와 같이 NDIS_PD_FLUSH_QUEUE 형식을 사용합니다.

NDIS_PD_FLUSH_QUEUE MyPDFlushQueue;

그런 다음 다음과 같이 함수를 구현합니다.

_Use_decl_annotations_
VOID
 MyPDFlushQueue(
    NDIS_PD_QUEUE*  NdisPDQueue
    )
  {...}

NDIS_PD_FLUSH_QUEUE 함수 형식은 Ntddndis.h 헤더 파일에 정의되어 있습니다. 코드 분석 도구를 실행할 때 오류를 보다 정확하게 식별하려면 함수 정의에 Use_decl_annotations 주석을 추가해야 합니다. Use_decl_annotations 주석은 헤더 파일의 NDIS_PD_FLUSH_QUEUE 함수 형식에 적용되는 주석이 사용되도록 합니다. 함수 선언 요구 사항에 대한 자세한 내용은 NDIS 드라이버에 함수 역할 형식을 사용하여 함수 선언을 참조하세요.

Use_decl_annotations 대한 자세한 내용은 함수 동작 주석 지정을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 Windows
헤더 ndis.h
IRQL <= DISPATCH_LEVEL