次の方法で共有


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 ソース ドライバーを作成する