IWDFIoTarget2::FormatRequestForFlush 메서드(wudfddi.h)
[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]
FormatRequestForFlush 메서드는 플러시 작업에 대한 I/O 요청을 빌드하지만 I/O 대상에 요청을 보내지 않습니다.
구문
HRESULT FormatRequestForFlush(
[in] IWDFIoRequest *pRequest,
[in, optional] IWDFFile *pFile
);
매개 변수
[in] pRequest
I/O 요청을 나타내는 요청 개체의 IWDFIoRequest 인터페이스에 대한 포인터입니다.
[in, optional] pFile
I/O 요청과 연결된 파일 개체의 IWDFFile 인터페이스에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있지만 기본 I/O 대상에는 필요합니다.
반환 값
FormatRequestForFlush 는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
프레임워크에서 메모리를 할당할 수 없습니다. |
이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.
설명
일부 드라이버는 하위 드라이버 또는 디바이스에 있는 캐시된 버퍼를 플러시해야 합니다. 예를 들어 직렬 디바이스 또는 스토리지 디바이스의 드라이버 스택에 있는 드라이버는 이 작업을 지원할 수 있습니다.
FormatRequestForFlush 메서드와 IWDFIoRequest::Send 메서드를 사용하여 동기 또는 비동기적으로 플러시 요청을 보냅니다.
예제
다음 코드 예제는 IQueueCallbackDefaultIoHandler::OnDefaultIoHandler 콜백 함수의 일부입니다. 콜백 함수가 플러시 요청을 받으면 디바이스의 기본 I/O 대상으로 요청을 보냅니다.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
IWDFDevice *pDevice;
IWDFIoTarget *pTarget;
IWDFFile *pFile;
//
// Obtain the device, default I/O target, and file object.
//
pQueue->GetDevice(&pDevice);
pDevice->GetDefaultIoTarget(&pTarget);
pRequest->GetFileObject(&pFile);
if (WdfRequestFlushBuffers==pRequest->GetType())
{
//
// Declare an IWDFIoTarget2 interface pointer and obtain the
// IWDFIoTarget2 interface from the IWDFIoTarget interface.
//
CComQIPtr<IWDFIoTarget2> target2(pTarget);
//
// Format a flush request and send it to the I/O target.
//
hr = target2->FormatRequestForFlush(pRequest,
pFile);
if (SUCCEEDED(hr))
{
hr = pRequest->Send(pTarget,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
0);
}
}
...
//
// Release objects.
//
SAFE_RELEASE(pDevice);
SAFE_RELEASE(pTarget);
SAFE_RELEASE(pFile);
}
요구 사항
요구 사항 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 데스크톱 |
최소 UMDF 버전 | 1.9 |
머리글 | wudfddi.h(Wudfddi.h 포함) |
DLL | WUDFx.dll |