다음을 통해 공유


EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST 콜백 함수(wdfio.h)

[KMDF에만 적용]

드라이버의 EvtIoAllocateResourcesForReservedRequest 콜백 함수는 드라이버가 나중에 I/O 요청을 처리하는 데 사용할 수 있는 요청별 리소스를 할당합니다. 프레임워크는 메모리 부족 상황에서 나중에 사용하기 위해 지정된 요청 개체를 미리 할당합니다.

구문

EVT_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST EvtWdfIoAllocateResourcesForReservedRequest;

NTSTATUS EvtWdfIoAllocateResourcesForReservedRequest(
  [in] WDFQUEUE Queue,
  [in] WDFREQUEST Request
)
{...}

매개 변수

[in] Queue

I/O 큐 개체에 대한 핸들입니다.

[in] Request

향후 메모리 부족 상황에서 프레임워크가 사용하기 위해 만든 요청 개체에 대한 핸들입니다.

반환 값

EvtIoAllocateResourcesForReservedRequest 콜백 함수는 STATUS_SUCCESS 또는 다른 상태 값을 반환해야 하며, 함수에 오류가 발생하지 않으면 NT_SUCCESS(상태)가 TRUE와 같습니다. 그렇지 않으면 이 함수는 NT_SUCCESS(상태)가 FALSE와 같은 상태 값을 반환해야 합니다.

설명

드라이버는 WdfIoQueueAssignForwardProgressPolicy를 호출할 때 EvtIoAllocateResourcesForReservedRequest 콜백 함수를 등록할 수 있습니다.

드라이버가 EvtIoAllocateResourcesForReservedRequest 콜백 함수를 등록하는 경우 프레임워크는 메모리 부족 상황에 대해 예약하는 요청 개체를 만든 직후 함수를 호출합니다.

콜백 함수는 메모리 부족 상황으로 인해 프레임워크가 예약된 요청을 사용하는 경우 드라이버가 나중에 요청을 처리하는 데 필요한 리소스를 할당할 수 있습니다.

요청별 리소스에 대한 메모리를 할당하기 위해 EvtIoAllocateResourcesForReservedRequest 콜백 함수는 요청 매개 변수가 지정하는 요청 개체 핸들을 지정하여 WdfObjectAllocateContext를 호출할 수 있습니다.

또는 추가로 드라이버가 WdfDeviceCreate를 호출하기 전에 WdfDeviceInitSetRequestAttributes를 호출할 수 있습니다. 따라서 프레임워크는 개체를 만들 때 예약된 각 요청 개체에 대한 컨텍스트 공간을 할당합니다.

드라이버가 예약된 요청 개체에 대한 개체 컨텍스트 공간을 할당하는 경우 드라이버는 예약된 요청 개체를 사용하는 I/O 요청을 완료할 때 컨텍스트 공간을 다시 초기화해야 합니다. 프레임워크는 사용 후 예약된 요청 개체의 컨텍스트 공간을 다시 초기화하지 않습니다.

드라이버가 WdfDeviceInitSetRequestAttributes 를 호출하고 요청 개체에 대해 EvtCleanupCallback 또는 EvtDestroyCallback 콜백 함수를 지정하는 경우 프레임워크는 연결된 I/O 큐를 삭제할 때만 예약된 요청 개체에 대해 이러한 콜백 함수를 호출합니다.

드라이버의 요청 처리기는WdfRequestIsReserved 를 호출하여 예약된 요청 개체가 사용되고 있는지 확인할 수 있습니다.

개체 컨텍스트 공간을 사용하는 방법에 대한 자세한 내용은 Framework 개체 컨텍스트 공간을 참조하세요.

콜백 함수가 리소스를 성공적으로 할당하는 경우 STATUS_SUCCESS 반환해야 합니다.

메모리 부족 상황과 같이 리소스 할당 오류가 발생하는 경우 콜백 함수는 오류 상태 값을 반환해야 합니다. 이 경우 프레임워크는 예약된 요청 개체 할당을 중지하고 콜백 함수의 반환 값을 WdfIoQueueAssignForwardProgressPolicy의 반환 값으로 사용합니다.

EvtIoAllocateResourcesForReservedRequest 콜백 함수에 대한 자세한 내용은 I/O 작업의 전달 진행률 보장을 참조하세요.

요구 사항

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

추가 정보

EvtIoAllocateRequestResources

WdfIoQueueAssignForwardProgressPolicy

WdfRequestIsReserved