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
随意。 EvtVhfAsyncOperationによって開始された非同期操作に VHF が割り当てる必要があるバッファーのサイズ。 0 以外の場合、VHF はこのサイズのバッファーを割り当て、VhfOperationContext パラメーター内のそのバッファーへのポインター EvtVhfAsyncOperation を呼び出して新しい操作を開始するたびに渡します。
DeviceObject
カーネル モード ドライバーに必要です。 HID ソース ドライバーの DEVICE_OBJECT 構造体へのポインター。 WdfDeviceWdmGetDeviceObject を呼び出し、WdfDeviceCreate 呼び出しでドライバーが受け取った WDFDEVICE ハンドルを渡すことによって、そのポインターを取得します。
FileHandle
ユーザー モード ドライバーに必要です。 WdfIoTargetWdmGetTargetFileHandle呼び出すことによって取得されたファイル ハンドル。 WDFIOTARGET を開くには、ユーザー モード (UMDF) VHF ソース ドライバーは、OpenParams.TypeWdfIoTargetOpenLocalTargetByFileに設定 WdfIoTargetOpen を呼び出す必要があります。
VendorID
随意。 作成する仮想 HID デバイスのベンダー ID。
ProductID
随意。 作成する仮想 HID デバイスの製品 ID。
VersionNumber
随意。 作成する仮想 HID デバイスのバージョン番号。
ContainerID
随意。 作成する仮想 HID デバイスのコンテナー ID。
InstanceIDLength
InstanceID
ReportDescriptorLength
必須。 ReportDescriptor が指すバッファーに含まれる HID レポート記述子長さ。
ReportDescriptor
必須。 HID レポート記述子を含む HID ソース ドライバー割り当てバッファーへのポインター。
EvtVhfReadyForNextReadReport
随意。 EvtVhfReadyForNextReadReport コールバックへのポインター。 HID ソース ドライバーを実装し、HID 入力レポートを送信するためのバッファリング ポリシーを処理する場合は、このコールバック関数を登録する必要があります。 このコールバックが指定されている場合、VHF はこれらのレポートをバッファーしません。 HID ソース ドライバーは、VHF が EvtVhfReadyForNextReadReport 呼び出すたびに、VhfReadReportSubmitを呼び出して 1 つのレポートを送信する必要があります。
EvtVhfAsyncOperationGetFeature
随意。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーを実装し、HID クラス ドライバーのペアから Top-Level コレクション に関連付けられている HID 機能レポートを取得する場合は、このコールバック関数を登録する必要があります。 ドライバーは、レポート記述子が機能レポートを宣言する場合にのみ、機能レポートを取得できます。
EvtVhfAsyncOperationSetFeature
随意。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーを実装し、HID クラス ドライバーのペアに Top-Level コレクションに関連付けられている HID 機能レポートを送信する場合は、このコールバック関数を登録する必要があります。 ドライバーは、レポート記述子が宣言する場合にのみ、機能レポートを設定できます。
EvtVhfAsyncOperationWriteReport
随意。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーは、HID 出力レポートをサポートし、HID クラス ドライバーのペアに送信する場合は、このコールバック関数を実装して登録する必要があります。
EvtVhfAsyncOperationGetInputReport
随意。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーは、入力レポートのオンデマンド クエリをサポートする場合は、このコールバック関数を実装して登録する必要があります。
EvtVhfCleanup
随意。 EvtVhfCleanup コールバックへのポインター。 HID ソース ドライバーは、仮想 HID デバイスに割り当てられたリソースを解放する場合に、このコールバック関数を実装して登録できます。
HardwareIDsLength
HardwareIDs
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 |
サポートされる最小サーバー | サポートされていません |
ヘッダー | vhf.h |
関連項目
Virtual HID Framework (VHF) を使用して HID ソース ドライバーを作成する