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 架構 (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 不會緩衝這些報告。 每次 VH F 叫用 evtVhfReadyForNextReadReport時,HID 來源驅動程式應該呼叫 VhfReadReportSubmit來提交一份報告。
EvtVhfAsyncOperationGetFeature
自選。 EvtVhfAsyncOperation 回呼的指標。 如果 HID 來源驅動程式想要從 HID 類別驅動程式組取得與 Top-Level 集合相關聯的 HID 功能報表,則必須實作並註冊此回呼函式。 只有在報表描述項宣告時,驅動程式才能取得功能報表。
EvtVhfAsyncOperationSetFeature
自選。 EvtVhfAsyncOperation 回呼的指標。 如果 HID 來源驅動程式想要將與 Top-Level 集合相關聯的 HID 功能報告傳送至 HID 類別驅動程式組,則必須實作並註冊此回呼函式。 只有當報表描述項宣告時,驅動程式才能設定功能報表。
EvtVhfAsyncOperationWriteReport
自選。 EvtVhfAsyncOperation 回呼的指標。 如果 HID 來源驅動程式想要支援 HID 輸出報告,並將其傳送至 HID 類別驅動程式組,則必須實作並註冊此回呼函式。
EvtVhfAsyncOperationGetInputReport
自選。 EvtVhfAsyncOperation 回呼的指標。 如果 HID 來源驅動程式想要支援輸入報表的隨選查詢,則必須實作並註冊此回呼函式。
EvtVhfCleanup
自選。 EvtVhfCleanup 回呼的指標。 如果 HID 來源驅動程式想要釋放虛擬 HID 裝置的配置資源,則可以實作並註冊此回呼函式。
HardwareIDsLength
HardwareIDs
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 |
支援的最低伺服器 | 不支援 |
標頭 | vhf.h |
另請參閱
使用虛擬 HID 架構 (VHF) 撰寫 HID 來源驅動程式