Compartilhar via


Método IWDFIoRequest2::GetSetInformationParameters (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. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

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

Sintaxe

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

Parâmetros

[out, optional] pInformationClass

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

[out, optional] pSizeInBytes

Um ponteiro para uma variável alocada pelo 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 GetSetInformationParameters para obter os parâmetros associados a uma solicitação de E/S, se o tipo de solicitação for WdfRequestSetInformation. O parâmetro pInformationClass identifica o tipo de informações de arquivo que o driver deve definir e o parâmetro pSizeInBytes especifica o tamanho do buffer que contém as informações. O driver pode chamar IWDFIoRequest2::RetrieveInputBuffer para obter o endereço do buffer.

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

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 definida, ela recuperará os parâmetros da solicitação. Se o driver der suporte ao tipo de informação especificado, ele copiará as informações do buffer de entrada 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->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 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 (inclua Wudfddi.h)
DLL WUDFx.dll

Confira também

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters