Compartir a través de


Método IWDFIoRequest2::GetQueryInformationParameters (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 GetQueryInformationParameters recupera parámetros asociados a una solicitud de E/S con tipo WdfRequestQueryInformation.

Sintaxis

void GetQueryInformationParameters(
  [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 GetQueryInformationParameters para obtener los parámetros asociados a una solicitud de E/S, si el tipo de solicitud es WdfRequestQueryInformation. El parámetro pInformationClass identifica el tipo de información de archivo que debe proporcionar el controlador y el parámetro pSizeInBytes especifica el tamaño del búfer que recibirá la información. El controlador puede llamar a IWDFIoRequest2::RetrieveOutputBuffer para obtener la dirección del búfer.

El controlador debe comprobar que el tamaño de búfer especificado es lo suficientemente grande como para recibir la información de archivo solicitada.

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 información de consulta, recupera los parámetros de la solicitud. Si el controlador admite el tipo de información especificado, copia la información en el búfer de salida 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->GetQueryInformationParameters(&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 output buffer.
        // 
        hr = r2->RetrieveOutputBuffer(sizeof(FILE_BASIC_INFORMATION), 
                                      (PVOID*) &buffer,
                                      &bufferCb);
        if (SUCCEEDED(hr))
        {
            // 
            // Copy file information to output buffer.
            // 
            CopyMemory(buffer,
                       &g_FileInfo,
                       sizeof(FILE_BASIC_INFORMATION));
            r2->SetInformation(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

Consulte también

IWDFIoRequest2

IWDFIoRequest2::GetSetInformationParameters