VHF_CONFIG 構造体 (vhf.h)
VhfCreate を呼び出して仮想 HID デバイスを作成するときに 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 はこのサイズのバッファーを割り当て、新しい操作を開始するために EvtVhfAsyncOperation を呼び出すたびに、VhfOperationContext パラメーターでそのバッファーへのポインターを渡します。
DeviceObject
カーネル モード ドライバーに必要です。 HID ソース ドライバーの DEVICE_OBJECT 構造体へのポインター。 そのポインターを取得するには、 WdfDeviceWdmGetDeviceObject を 呼び出し、ドライバーが WdfDeviceCreate 呼び出しで受け取った WDFDEVICE ハンドルを渡します。
FileHandle
ユーザー モード ドライバーに必要です。 WdfIoTargetWdmGetTargetFileHandle を呼び出して取得したファイル ハンドル。 WDFIOTARGET を開くには、ユーザー モード (UMDF) VHF ソース ドライバーで WdfIoTargetOpen を呼び出し、 OpenParams.Type を WdfIoTargetOpenLocalTargetByFile に設定する必要があります。
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 クラス ドライバー ペアから 最上位コレクション に関連付けられている HID 機能レポートを取得する場合に、このコールバック関数を実装して登録する必要があります。 ドライバーは、レポート記述子で機能レポートが宣言されている場合にのみ、機能レポートを取得できます。
EvtVhfAsyncOperationSetFeature
省略可能。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーは、 最上位のコレクション に関連付けられている HID 機能レポートを HID クラス ドライバー のペアに送信する場合は、このコールバック関数を実装して登録する必要があります。 ドライバーは、レポート記述子で宣言されている場合にのみ、機能レポートを設定できます。
EvtVhfAsyncOperationWriteReport
省略可能。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーは、HID 出力レポートをサポートし、HID クラス ドライバー ペアに送信する場合は、このコールバック関数を実装して登録する必要があります。
EvtVhfAsyncOperationGetInputReport
省略可能。 EvtVhfAsyncOperation コールバックへのポインター。 HID ソース ドライバーは、入力レポートのオンデマンド クエリをサポートする場合に、このコールバック関数を実装して登録する必要があります。
EvtVhfCleanup
省略可能。 EvtVhfCleanup コールバックへのポインター。 HID ソース ドライバーは、仮想 HID デバイスに割り当てられたリソースを解放する場合に、このコールバック関数を実装して登録できます。
HardwareIDsLength
HardwareIDs
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | サポートなし |
Header | vhf.h |