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 Framework (VHF) 叫用這些回呼函式時所傳遞之 HID 來源驅動程式設定記憶體的不透明指標。

OperationContextSize

選擇性。 VHF 必須配置給 EvtVhfAsyncOperation 所啟動之異步操作的緩衝區大小。 如果不是零,VHF 會配置此大小的緩衝區,並在每次叫用 EvtVhfAsyncOperation 以啟動新作業時,將該緩衝區的指標傳遞至 VhfOperationContext 參數。

DeviceObject

內核模式驅動程式的必要專案。 HID 來源驅動程式 DEVICE_OBJECT 結構的指標。 呼叫 WdfDeviceWdmGetDeviceObject 並傳遞驅動程式在 WdfDeviceCreate 呼叫中收到的 WDFDEVICE 句柄,以取得該指標。

FileHandle

使用者模式驅動程式的必要專案。 呼叫 WdfIoTargetWdmGetTargetFileHandle 取得的檔案句柄。 若要開啟 WDFIOTARGET,使用者模式 (UMDF) VHF 來源驅動程式應該呼叫 WdfIoTargetOpen,並將 OpenParams.Type 設為 WdfIoTargetOpenLocalTargetByFile

VendorID

選擇性。 要建立之虛擬 HID 裝置的廠商標識碼。

ProductID

選擇性。 要建立之虛擬 HID 裝置的產品標識碼。

VersionNumber

選擇性。 要建立之虛擬 HID 裝置的版本號碼。

ContainerID

選擇性。 要建立之虛擬 HID 裝置的容器標識碼。

InstanceIDLength

InstanceID

ReportDescriptorLength

必要。 ReportDescriptor 所指向之緩衝區中包含的 HID 報表描述元長度。

ReportDescriptor

必要。 包含 HID 報表描述元之 HID 來源驅動程式配置緩衝區的指標。

EvtVhfReadyForNextReadReport

選擇性。 EvtVhfReadyForNextReadReport 回呼的指標。 如果 HID 來源驅動程式想要處理用於提交 HID 輸入報告的緩衝原則,則必須實作並註冊此回呼函式。 如果指定此回呼,VHF 不會緩衝這些報告。 每次 VHF 叫用 EvtVhfReadyForNextReadReportReport 時,HID 來源驅動程式都應該呼叫 VhfReadReportSubmit 來提交一份報告。

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 Framework (VHF) 撰寫 HID 來源驅動程式