estructura VHF_CONFIG (vhf.h)
Contiene información de configuración inicial proporcionada por el controlador de origen HID cuando llama a VhfCreate para crear un dispositivo HID virtual.
Sintaxis
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;
Miembros
Size
Necesario. Tamaño de esta estructura inicializada por VHF_CONFIG_INIT.
VhfClientContext
Opcional. Puntero opaco a la memoria asignada por el controlador de origen HID que virtual HID Framework (VHF) pasa cuando invoca esas funciones de devolución de llamada.
OperationContextSize
Opcional. Tamaño del búfer que VHF debe asignar para una operación asincrónica iniciada por EvtVhfAsyncOperation. Si no es cero, VHF asigna un búfer de este tamaño y pasa un puntero a ese búfer en el parámetro VhfOperationContext cada vez que invoca EvtVhfAsyncOperation para iniciar una nueva operación.
DeviceObject
Necesario para los controladores en modo kernel. Puntero a la estructura de DEVICE_OBJECT para el controlador de origen HID. Obtenga ese puntero llamando a WdfDeviceWdmGetDeviceObject y pasando el identificador WDFDEVICE que el controlador recibió en la llamada WdfDeviceCreate .
FileHandle
Obligatorio para los controladores en modo de usuario. Identificador de archivo obtenido mediante una llamada a WdfIoTargetWdmGetTargetFileHandle. Para abrir un WDFIOTARGET, un controlador de origen VHF en modo de usuario (UMDF) debe llamar a WdfIoTargetOpen con OpenParams.Type establecido en WdfIoTargetOpenLocalTargetByFile.
VendorID
Opcional. Identificador de proveedor del dispositivo HID virtual que se va a crear.
ProductID
Opcional. Id. de producto del dispositivo HID virtual que se va a crear.
VersionNumber
Opcional. Número de versión del dispositivo HID virtual que se va a crear.
ContainerID
Opcional. Identificador de contenedor del dispositivo HID virtual que se va a crear.
InstanceIDLength
InstanceID
ReportDescriptorLength
Necesario. Longitud del descriptor de informe HID contenido en un búfer señalado por ReportDescriptor.
ReportDescriptor
Necesario. Puntero a un búfer asignado por el controlador de origen HID que contiene el descriptor de informe HID.
EvtVhfReadyForNextReadReport
Opcional. Puntero a una devolución de llamada EvtVhfReadyForNextReadReport . El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si desea controlar la directiva de almacenamiento en búfer para enviar informes de entrada HID. Si se especifica esta devolución de llamada, VHF no almacena en búfer esos informes. El controlador de origen HID debe enviar un informe llamando a VhfReadReportSubmit, cada vez que VHF invoca EvtVhfReadyForNextReadReport.
EvtVhfAsyncOperationGetFeature
Opcional. Puntero a una devolución de llamada EvtVhfAsyncOperation . El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si desea obtener un informe de características HID asociado a una colección de nivel superior del par de controladores de clase HID. El controlador solo puede obtener un informe de características si el descriptor de informe lo declara.
EvtVhfAsyncOperationSetFeature
Opcional. Puntero a una devolución de llamada EvtVhfAsyncOperation . El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si desea enviar un informe de características HID asociado a una colección de nivel superior al par de controladores de clase HID. El controlador solo puede establecer un informe de características si el descriptor de informe lo declara.
EvtVhfAsyncOperationWriteReport
Opcional. Puntero a una devolución de llamada EvtVhfAsyncOperation . El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si desea un informe de salida HID compatible y enviarlos al par de controladores de clase HID.
EvtVhfAsyncOperationGetInputReport
Opcional. Puntero a una devolución de llamada EvtVhfAsyncOperation . El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si desea admitir la consulta a petición para los informes de entrada.
EvtVhfCleanup
Opcional. Puntero a una devolución de llamada EvtVhfCleanup . El controlador de origen HID puede implementar y registrar esta función de devolución de llamada si desea liberar los recursos asignados para el dispositivo HID virtual.
HardwareIDsLength
HardwareIDs
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Servidor mínimo compatible | No se admite ninguno |
Encabezado | vhf.h |
Consulte también
Escribir un controlador de origen HID mediante Virtual HID Framework (VHF)