WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT 함수(wdfio.h)

[KMDF에만 적용]

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT 함수는 드라이버의 WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 구조를 초기화합니다.

구문

void WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT(
  [out] PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY   Policy,
  [in]  ULONG                                   TotalForwardProgressRequests,
  [in]  PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS EvtIoWdmIrpForForwardProgress
);

매개 변수

[out] Policy

드라이버의 WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 구조체에 대한 포인터입니다.

[in] TotalForwardProgressRequests

프레임워크가 메모리 부족 상황에서 사용하기 위해 예약하려고 시도하는 요청 개체의 수입니다. 이 수는 0보다 커야 합니다.

[in] EvtIoWdmIrpForForwardProgress

드라이버의 EvtIoWdmIrpForForwardProgress 콜백 함수에 대한 포인터입니다.

반환 값

없음

설명

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT 함수는 지정된 WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 구조체를 0으로 설정하고 Size 멤버를 설정합니다. 또한 구조체의 TotalForwardProgressRequests ForwardProgressReservePolicySettings.Policy.ExaminePolicy.EvtIoWdmIrpForWardProgress 멤버를 지정된 값으로 설정하고 ForwardProgressReservedPolicy 멤버를 WdfIoForwardProgressReservedPolicyUseExamine으로 설정합니다.

예제

다음 코드 예제에서는 WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 구조를 초기화한 다음 WdfIoQueueAssignForwardProgressPolicy를 호출합니다. 이 예제에서 드라이버는 프레임워크가 메모리 부족 상황에 대해 10개의 요청 개체를 할당하고 예약해야 하며, 프레임워크가 예약된 요청 개체 중 하나를 사용하기 전에 드라이버의 MyIoForwardExamineIrpForWardProgress 콜백 함수를 호출하도록 지정합니다.

#define MAX_RESERVED_REQUESTS 10

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY queueForwardProgressPolicy;
WDFQUEUE readQueue;
NTSTATUS status = STATUS_SUCCESS;

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT(
    &queueForwardProgressPolicy,
    MAX_RESERVED_REQUESTS,
    MyIoForwardExamineIrpForForwardProgress
    );
status = WdfIoQueueAssignForwardProgressPolicy(
    readQueue,
    &queueForwardProgressPolicy
    );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.9
머리글 wdfio.h(Wdf.h 포함)

추가 정보

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT

WdfIoQueueAssignForwardProgressPolicy