структура 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)