Método IWDFIoTarget2::FormatRequestForFlush (wudfddi.h)
[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.
El método FormatRequestForFlush compila una solicitud de E/S para una operación de vaciado, pero no envía la solicitud a un destino de E/S.
Sintaxis
HRESULT FormatRequestForFlush(
[in] IWDFIoRequest *pRequest,
[in, optional] IWDFFile *pFile
);
Parámetros
[in] pRequest
Puntero a la interfaz IWDFIoRequest del objeto de solicitud que representa la solicitud de E/S.
[in, optional] pFile
Puntero a la interfaz IWDFFile del objeto de archivo asociado a la solicitud de E/S. Este parámetro es opcional y puede ser NULL, pero es necesario para el destino de E/S predeterminado.
Valor devuelto
FormatRequestForFlush devuelve S_OK si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los valores siguientes:
Código devuelto | Descripción |
---|---|
|
El marco de trabajo no pudo asignar memoria. |
Este método podría devolver uno de los otros valores que contiene Winerror.h.
Comentarios
Algunos controladores deben vaciar los búferes almacenados en caché que existen en un controlador inferior o en el dispositivo. Por ejemplo, los controladores que existen en una pila de controladores para un dispositivo serie o un dispositivo de almacenamiento pueden admitir esta operación.
Use el método FormatRequestForFlush , seguido del método IWDFIoRequest::Send , para enviar solicitudes de vaciado de forma sincrónica o asincrónica.
Ejemplos
El siguiente ejemplo de código forma parte de una función de devolución de llamada IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Si la función de devolución de llamada recibe una solicitud de vaciado, envía la solicitud al destino de E/S predeterminado del dispositivo.
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);
}
Requisitos
Requisito | Value |
---|---|
Finalización del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
Plataforma de destino | Escritorio |
Versión mínima de UMDF | 1,9 |
Encabezado | wudfddi.h (incluya Wudfddi.h) |
Archivo DLL | WUDFx.dll |