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)