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 |