Поделиться через


Метод IWDFIoRequest2::GetSetInformationParameters (wudfddi.h)

[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]

Метод GetSetInformationParameters извлекает параметры, связанные с запросом ввода-вывода типа WdfRequestSetInformation.

Синтаксис

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

Параметры

[out, optional] pInformationClass

Указатель на переменную, выделенную драйвером, которая получает WDF_FILE_INFORMATION_CLASS типизированное значение. Этот указатель является необязательным и может иметь значение NULL.

[out, optional] pSizeInBytes

Указатель на переменную, выделенную драйвером, которая получает размер (в байтах) сведений о файле. Этот указатель является необязательным и может иметь значение NULL.

Возвращаемое значение

None

Remarks

Драйвер может вызывать Метод GetSetInformationParameters , чтобы получить параметры, связанные с запросом ввода-вывода, если тип запроса — WdfRequestSetInformation. Параметр pInformationClass определяет тип сведений о файлах, которые должен задать драйвер, а параметр pSizeInBytes задает размер буфера, содержащего сведения. Драйвер может вызвать IWDFIoRequest2::RetrieveInputBuffer для получения адреса буфера.

Драйвер должен убедиться, что указанный размер буфера достаточно велик, чтобы он содержал сведения о файлах, которые должен задать драйвер.

Примеры

Следующий пример кода является частью функции обратного вызова IQueueCallbackDefaultIoHandler::OnDefaultIoHandler . Если функция обратного вызова получает запрос на получение сведений о наборе, она извлекает параметры запроса. Если драйвер поддерживает указанный тип сведений, он копирует данные из входного буфера запроса.

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:
...
}

Требования

Требование Значение
Дата окончания поддержки Недоступно в UMDF 2.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Минимальная версия UMDF 1,9
Верхняя часть wudfddi.h (включая Wudfddi.h)
DLL WUDFx.dll

См. также раздел

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters