Compartir a través de


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

Obligatorio. 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 pasa virtual HID Framework (VHF) 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 controladores en modo kernel. Puntero a la estructura DEVICE_OBJECT del controlador de origen HID. Obtenga ese puntero llamando a WdfDeviceWdmGetDeviceObject y pasando el controlador WDFDEVICE que el controlador recibió en la llamada WdfDeviceCreate.

FileHandle

Necesario para controladores en modo de usuario. Identificador de archivo obtenido llamando a WdfIoTargetWdmGetTargetFileHandle. Para abrir un WDFIOTARGET, un controlador de origen VHF en modo de usuario (UMDF) debe llamar a WdfIoTargetOpenOpen 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

Obligatorio. Longitud del descriptor de informe HID contenido en un búfer al que apunta ReportDescriptor.

ReportDescriptor

Obligatorio. 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 EvtVhfReadyForNextRead Report. El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si quiere 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 EvtVhfAsyncOpera tion. 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 un colección deTop-Level 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 EvtVhfAsyncOpera tion. 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 un colección deTop-Level 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 EvtVhfAsyncOpera tion. El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si quiere un informe de salida HID compatible y enviarlos al par de controladores de clase HID.

EvtVhfAsyncOperationGetInputReport

Opcional. Puntero a una devolución de llamada EvtVhfAsyncOpera tion. El controlador de origen HID debe implementar y registrar esta función de devolución de llamada si quiere admitir la consulta a petición para los informes de entrada.

EvtVhfCleanup

Opcional. Puntero a un EvtVhfCleanup devolución de llamada. El controlador de origen HID puede implementar y registrar esta función de devolución de llamada si quiere liberar los recursos asignados para el dispositivo HID virtual.

HardwareIDsLength

HardwareIDs

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido No se admite ninguna
encabezado de vhf.h

Consulte también

Escribir un controlador de origen HID mediante virtual HID Framework (VHF)