Método IWDFIoRequest2::GetSetInformationParameters (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 GetSetInformationParameters recupera parámetros asociados a una solicitud de E/S con tipo WdfRequestSetInformation.
Sintaxis
void GetSetInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
Parámetros
[out, optional] pInformationClass
Puntero a una variable asignada por el controlador que recibe un valor con tipo WDF_FILE_INFORMATION_CLASS. Este puntero es opcional y puede ser NULL.
[out, optional] pSizeInBytes
Puntero a una variable asignada por el controlador que recibe el tamaño, en bytes, de la información del archivo. Este puntero es opcional y puede ser NULL.
Valor devuelto
None
Observaciones
El controlador puede llamar a GetSetInformationParameters para obtener los parámetros asociados a una solicitud de E/S, si el tipo de solicitud es WdfRequestSetInformation. El parámetro pInformationClass identifica el tipo de información de archivo que debe establecer el controlador y el parámetro pSizeInBytes especifica el tamaño del búfer que contiene la información. El controlador puede llamar a IWDFIoRequest2::RetrieveInputBuffer para obtener la dirección del búfer.
El controlador debe comprobar que el tamaño del búfer especificado es lo suficientemente grande como para contener la información de archivo que debe establecer el controlador.
Ejemplos
El ejemplo de código siguiente 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 información establecida, recupera los parámetros de la solicitud. Si el controlador admite el tipo de información especificado, copia la información del búfer de entrada de la solicitud.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
WDF_FILE_INFORMATION_CLASS infoClass;
SIZE_T bufSize;
PFILE_BASIC_INFORMATION buffer;
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Get the I/O request's parameters.
//
r2->GetSetInformationParameters(&infoClass,
&bufSize);
//
// This driver supports only FileBasicInformation.
//
if (infoClass != FileBasicInformation)
{
hr = HRESULT_FROM_NT(STATUS_NOT_SUPPORTED);
goto exit;
}
//
// Validate buffer size.
//
if (bufferCb != sizeof(FILE_BASIC_INFORMATION))
{
hr = HRESULT_FROM_NT(STATUS_BUFFER_TOO_SMALL);
goto exit;
}
//
// Get input buffer.
//
hr = r2->RetrieveInputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information from input buffer.
//
CopyMemory(&g_FileInfo,
buffer,
sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
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 |