프레임워크 요청 개체 다시 사용

성능을 향상시키기 위해 I/O 대상에 거의 동일한 비동기 요청을 많이 만들고 전송하는 프레임워크 기반 드라이버는 각 요청에 대해 새 요청 개체를 만드는 대신 요청 개체를 다시 사용할 수 있습니다. 드라이버는 요청이 완료된 후 요청 개체를 다시 사용할 수 있습니다.

드라이버가 WdfRequestCreate 또는 WdfRequestCreateFromIrp을 호출하여 요청 개체를 만든 경우 WdfRequestReuse를 호출하여 요청을 다시 사용할 수 있습니다. 드라이버는 I/O 큐에서 프레임워크에서 받은 요청 개체를 다시 사용할 수도 있지만 수신된 요청 개체에 포함된 IRP는 변경할 수 없습니다.

WdfRequestReuse에 설명된 반환 값이 실패하는 상황을 방지하기 위해 주의하는 경우 드라이버는 CompletionRoutine 콜백 함수 내에서 WdfRequestReuse를 호출할 수 있습니다. CompletionRoutine 콜백 함수에는 VOID 반환 값이 있으므로 오류를 보고할 수 없습니다.

드라이버가 다시 사용하는 요청 개체에 대해 CompletionRoutine 콜백 함수를 제공하는 경우 드라이버는 WdfRequestRequestReuse를 호출한 후 WdfRequestSetCompletionRoutine을 호출해야 합니다.