IWDFIoTarget2::FormatRequestForFlush 方法 (wudfddi.h)
[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D2DB6FC2DB57240699CC274B7FF9FCF4C 上,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。 否則,方法可能會傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
架構無法配置記憶體。 |
這個方法可能會傳回 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 |