EVT_VHF_ASYNC_OPERATION コールバック関数 (vhf.h)
HID ソース ドライバーは、HID レポートを取得および設定する 4 つの非同期操作のいずれかをサポートする場合に、このイベント コールバックを実装します。
構文
EVT_VHF_ASYNC_OPERATION EvtVhfAsyncOperation;
void EvtVhfAsyncOperation(
[in] PVOID VhfClientContext,
[in] VHFOPERATIONHANDLE VhfOperationHandle,
[in, optional] PVOID VhfOperationContext,
[in] PHID_XFER_PACKET HidTransferPacket
)
{...}
パラメーター
[in] VhfClientContext
ドライバーが VhfCreate に指定されたVHF_CONFIG構造体で渡して仮想 HID デバイスを作成した HID ソース ドライバー定義バッファーへの不透明なポインター。
[in] VhfOperationHandle
この非同期操作を一意に識別する不透明なハンドル。
[in, optional] VhfOperationContext
操作を処理するために HID ソース ドライバーで使用できるバッファーへのポインター。 バッファーのサイズは、VhfCreate に提供されるVHF_CONFIG構造体の HID ソース ドライバーによって指定されます。
[in] HidTransferPacket
HID_XFER_PACKET構造体へのポインター。 HID レポートに関する情報が含まれており、レポートを取得または設定するための I/O 要求の HID ソース ドライバーと HID クラス/ミニ ドライバー ペアによって使用されます。
戻り値
なし
解説
HID ソース ドライバーでサポートできる非同期操作には、GetFeature、SetFeature、WriteReport、GetInputReport の 4 種類があります。
VHF が HID レポートを設定または照会する要求を取得すると、VHF は以前に登録された EvtVhfAsyncOperation コールバック関数を呼び出し、非同期操作を開始します。 各操作は、VHF によって設定される VHFOPERATIONHANDLE ハンドルによって識別されます。 ドライバーが初期化中にVHF_CONFIGの OperationContextSize メンバーに 0 以外の値を指定した場合、VHF はそのサイズのバッファーを割り当て、EvtVhfAsyncOperation を呼び出すときに VhfOperationContext パラメーターでそのバッファーへのポインターを渡します。
HidTransferPacket は、HID レポート固有の詳細を含む VHF によって割り当てられた構造体を指す、この操作の転送バッファーです。 たとえば、操作が GetFeature の場合、完了すると、バッファーは HID ソース ドライバーによって要求された HID 機能レポートで埋められます。
操作が完了すると、HID ソースは VhfAsyncOperationComplete を呼び出して完了状態を報告します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | デスクトップ |
Header | vhf.h |
IRQL | <=DISPATCH_LEVEL |