Compartilhar via


estrutura VHF_CONFIG (vhf.h)

Contém informações de configuração iniciais fornecidas pelo driver de origem HID quando ele chama VhfCreate para criar um dispositivo HID virtual.

Sintaxe

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;

Membros

Size

Obrigatórios. Tamanho dessa estrutura inicializada por VHF_CONFIG_INIT.

VhfClientContext

Opcional. Um ponteiro opaco para a memória alocada pelo driver de origem HID que o VHF (Virtual HID Framework) passa quando invoca essas funções de retorno de chamada.

OperationContextSize

Opcional. Tamanho do buffer que o VHF deve alocar para uma operação assíncrona iniciada por EvtVhfAsyncOperation. Se não for zero, o VHF alocará um buffer desse tamanho e passará um ponteiro para esse buffer no parâmetro VhfOperationContext sempre que ele invocar EvtVhfAsyncOperation para iniciar uma nova operação.

DeviceObject

Necessário para drivers no modo kernel. Um ponteiro para a estrutura de DEVICE_OBJECT para o driver de origem HID. Obtenha esse ponteiro chamando WdfDeviceWdmGetDeviceObject e passando o identificador WDFDEVICE que o driver recebeu na chamada WdfDeviceCreate .

FileHandle

Necessário para drivers de modo de usuário. Um identificador de arquivo obtido chamando WdfIoTargetWdmGetTargetFileHandle. Para abrir um WDFIOTARGET, um driver de origem VHF do modo de usuário (UMDF) deve chamar WdfIoTargetOpen com OpenParams.Type definido como WdfIoTargetOpenLocalTargetByFile.

VendorID

Opcional. ID do fornecedor do dispositivo HID virtual a ser criado.

ProductID

Opcional. ID do produto do dispositivo HID virtual a ser criado.

VersionNumber

Opcional. Número de versão do dispositivo HID virtual a ser criado.

ContainerID

Opcional. ID do contêiner do dispositivo HID virtual a ser criado.

InstanceIDLength

InstanceID

ReportDescriptorLength

Obrigatórios. O comprimento do Descritor de Relatório HID contido em um buffer apontado por ReportDescriptor.

ReportDescriptor

Obrigatórios. Um ponteiro para um buffer alocado pelo driver de origem HID que contém o Descritor de Relatório HID.

EvtVhfReadyForNextReadReport

Opcional. Um ponteiro para um retorno de chamada EvtVhfReadyForNextReadReport . O driver de origem HID deve implementar e registrar essa função de retorno de chamada se quiser manipular a política de buffer para enviar relatórios de entrada HID. Se esse retorno de chamada for especificado, o VHF não armazenará esses relatórios em buffer. O driver de origem HID deve enviar um relatório chamando VhfReadReportSubmit, sempre que o VHF invocar EvtVhfReadyForNextReadReport.

EvtVhfAsyncOperationGetFeature

Opcional. Um ponteiro para um retorno de chamada EvtVhfAsyncOperation . O driver de origem HID deve implementar e registrar essa função de retorno de chamada se quiser obter um Relatório de Recursos HID associado a uma Coleção de Nível Superior do par de driver de classe HID. O driver só poderá obter um Relatório de Recursos se o Descritor de Relatório o declarar.

EvtVhfAsyncOperationSetFeature

Opcional. Um ponteiro para um retorno de chamada EvtVhfAsyncOperation . O driver de origem HID deve implementar e registrar essa função de retorno de chamada se quiser enviar um Relatório de Recursos HID associado a uma Coleção de Nível Superior para o par de driver de classe HID. O driver pode definir um Relatório de Recursos somente se o Descritor de Relatório o declarar.

EvtVhfAsyncOperationWriteReport

Opcional. Um ponteiro para um retorno de chamada EvtVhfAsyncOperation . O driver de origem HID deve implementar e registrar essa função de retorno de chamada se quiser dar suporte a Relatórios de Saída hid e enviá-los para o par de driver de classe HID.

EvtVhfAsyncOperationGetInputReport

Opcional. Um ponteiro para um retorno de chamada EvtVhfAsyncOperation . O driver de origem HID deve implementar e registrar essa função de retorno de chamada se quiser dar suporte à consulta sob demanda para Relatórios de Entrada.

EvtVhfCleanup

Opcional. Um ponteiro para um retorno de chamada EvtVhfCleanup . O driver de origem HID poderá implementar e registrar essa função de retorno de chamada se quiser liberar os recursos alocados para o dispositivo HID virtual.

HardwareIDsLength

HardwareIDs

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Nenhum compatível
Cabeçalho vhf.h

Confira também

Gravar um driver de origem HID usando a VHF (Estrutura HID Virtual)