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 |