Método IWDFIoRequest2::GetQueryInformationParameters (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método GetQueryInformationParameters recupera parâmetros associados a uma solicitação de E/S do tipo WdfRequestQueryInformation.

Sintaxe

void GetQueryInformationParameters(
  [out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
  [out, optional] SIZE_T                     *pSizeInBytes
);

Parâmetros

[out, optional] pInformationClass

Um ponteiro para uma variável alocada por driver que recebe um valor de tipo WDF_FILE_INFORMATION_CLASS. Esse ponteiro é opcional e pode ser NULL.

[out, optional] pSizeInBytes

Um ponteiro para uma variável alocada por driver que recebe o tamanho, em bytes, das informações do arquivo. Esse ponteiro é opcional e pode ser NULL.

Retornar valor

Nenhum

Comentários

Seu driver pode chamar GetQueryInformationParameters para obter os parâmetros associados a uma solicitação de E/S, se o tipo de solicitação for WdfRequestQueryInformation. O parâmetro pInformationClass identifica o tipo de informações de arquivo que o driver deve fornecer e o parâmetro pSizeInBytes especifica o tamanho do buffer que receberá as informações. O driver pode chamar IWDFIoRequest2::RetrieveOutputBuffer para obter o endereço do buffer.

O driver deve verificar se o tamanho do buffer especificado é grande o suficiente para receber as informações de arquivo solicitadas.

Exemplos

O exemplo de código a seguir faz parte de uma função de retorno de chamada IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Se a função de retorno de chamada receber uma solicitação de informações de consulta, ela recuperará os parâmetros da solicitação. Se o driver der suporte ao tipo de informação especificado, ele copiará as informações para o buffer de saída da solicitação.

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 Valor
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1,9
Cabeçalho wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Confira também

IWDFIoRequest2

IWDFIoRequest2::GetSetInformationParameters