Compartir a través de


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

Consulte también

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters