структура 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 (VHF) при вызове этих функций обратного вызова.

OperationContextSize

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

DeviceObject

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

FileHandle

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

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

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

EvtVhfAsyncOperationSetFeature

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

EvtVhfAsyncOperationWriteReport

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

EvtVhfAsyncOperationGetInputReport

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

EvtVhfCleanup

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

HardwareIDsLength

HardwareIDs

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Ни одна версия не поддерживается
Верхняя часть vhf.h

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

Написание исходного драйвера HID с помощью Виртуальной платформы HID (VHF)