структура VHF_CONFIG (vhf.h)

Содержит начальные сведения о конфигурации, предоставляемые драйвером источника HID при вызове VhfCreate для создания виртуального устройства HID.

Синтаксис

typedef struct _VHF_CONFIG {

    ULONG                               Size;

    PVOID                               VhfClientContext;

    ULONG                               OperationContextSize;

#ifdef _KERNEL_MODE
    PDEVICE_OBJECT                      DeviceObject;
#else
    HANDLE                              FileHandle;
#endif

    USHORT                              VendorID;
    USHORT                              ProductID;
    USHORT                              VersionNumber;

    GUID                                ContainerID;

    USHORT                              InstanceIDLength;
    _Field_size_bytes_full_(InstanceIDLength)   
    PWSTR                               InstanceID;

    USHORT                              ReportDescriptorLength;
    _Field_size_full_(ReportDescriptorLength)
    PUCHAR                              ReportDescriptor;

    PEVT_VHF_READY_FOR_NEXT_READ_REPORT EvtVhfReadyForNextReadReport;
    PEVT_VHF_ASYNC_OPERATION            EvtVhfAsyncOperationGetFeature;
    PEVT_VHF_ASYNC_OPERATION            EvtVhfAsyncOperationSetFeature;
    PEVT_VHF_ASYNC_OPERATION            EvtVhfAsyncOperationWriteReport;
    PEVT_VHF_ASYNC_OPERATION            EvtVhfAsyncOperationGetInputReport;
    PEVT_VHF_CLEANUP                    EvtVhfCleanup;

    USHORT                              HardwareIDsLength;
    _Field_size_bytes_full_(HardwareIDsLength)
    PWSTR                               HardwareIDs;

} VHF_CONFIG, *PVHF_CONFIG;

Члены

Size

Обязательно. Размер этой структуры, инициализируемый VHF_CONFIG_INIT.

VhfClientContext

Необязательный. Непрозрачный указатель на память, выделенную драйвером-источником HID, передает виртуальную платформу HID Framework (VHF) при вызове этих функций обратного вызова.

OperationContextSize

Необязательный. Размер буфера, который VHF должен выделить для асинхронной операции, запущенной EvtVhfAsyncOperation. Если значение не равно нулю, VHF выделяет буфер этого размера и передает указатель на этот буфер в параметре VhfOperationContext каждый раз при вызове EvtVhfAsyncOperation для запуска новой операции.

DeviceObject

Требуется для драйверов в режиме ядра. Указатель на структуру DEVICE_OBJECT для исходного драйвера HID. Получите этот указатель, вызвав WdfDeviceWdmGetDeviceObject и передав дескриптор WDFDEVICE, полученный драйвер ом в вызове WdfDeviceCreate.

FileHandle

Требуется для драйверов пользовательского режима. Дескриптор файла, полученный путем вызова WdfIoTargetGetTargetFileHandle. Чтобы открыть WDFIOTARGET, драйвер источника VHF в режиме пользователя (UMDF) должен вызывать WdfIoTargetOpen с OpenParams.Type для WdfIoTargetOpenLocenTargetByFile.

VendorID

Необязательный. Идентификатор поставщика создаваемого виртуального устройства HID.

ProductID

Необязательный. Идентификатор продукта создаваемого виртуального устройства HID.

VersionNumber

Необязательный. Номер версии создаваемого виртуального устройства HID.

ContainerID

Необязательный. Идентификатор контейнера создаваемого виртуального устройства HID.

InstanceIDLength

InstanceID

ReportDescriptorLength

Обязательно. Длина дескриптора отчета HID, содержащегося в буфере, на который указывает ReportDescriptor.

ReportDescriptor

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

EvtVhfReadyForNextReadReport

Необязательный. Указатель на обратный вызов EvtVhfReadyForNextReadReport. Драйвер источника HID должен реализовать и зарегистрировать эту функцию обратного вызова, если она хочет обработать политику буферизации для отправки отчетов ввода HID. Если этот обратный вызов указан, VHF не буферизирует эти отчеты. Драйвер источника HID должен отправлять один отчет путем вызова VhfReadReportSubmit, при каждом вызове VHF EvtVhfReadyForNextReadReport.

EvtVhfAsyncOperationGetFeature

Необязательный. Указатель на обратный вызов EvtVhfAsyncOper ation. Драйвер источника HID должен реализовать и зарегистрировать эту функцию обратного вызова, если она хочет получить отчет о функциях HID, связанный с Top-Level коллекцией из пары драйверов класса HID. Драйвер может получить отчет о функциях, только если дескриптор отчета объявляет его.

EvtVhfAsyncOperationSetFeature

Необязательный. Указатель на обратный вызов EvtVhfAsyncOper ation. Драйвер источника HID должен реализовать и зарегистрировать эту функцию обратного вызова, если она хочет отправить отчет о функциях HID, связанный с Top-Level коллекцией в пару драйверов класса HID. Драйвер может задать отчет о функциях, только если дескриптор отчета объявляет его.

EvtVhfAsyncOperationWriteReport

Необязательный. Указатель на обратный вызов EvtVhfAsyncOper ation. Драйвер источника HID должен реализовать и зарегистрировать эту функцию обратного вызова, если она хочет поддерживать отчеты о выходных данных HID и отправлять их в пару драйверов класса HID.

EvtVhfAsyncOperationGetInputReport

Необязательный. Указатель на обратный вызов EvtVhfAsyncOper ation. Драйвер источника HID должен реализовать и зарегистрировать эту функцию обратного вызова, если она хочет поддерживать запрос по запросу на входные отчеты.

EvtVhfCleanup

Необязательный. Указатель на обратный вызов EvtVhfCleanup. Драйвер источника HID может реализовать и зарегистрировать эту функцию обратного вызова, если она хочет освободить выделенные ресурсы для виртуального устройства HID.

HardwareIDsLength

HardwareIDs

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Не поддерживается
заголовка vhf.h

См. также

Написание исходного драйвера HID с помощью Virtual HID Framework (VHF)