vmbuskernelmodeclientlibapi.h ヘッダー
このヘッダーはネットワークで使用されます。 詳細については、次を参照してください。
vmbuskernelmodeclientlibapi.h には、次のプログラミング インターフェイスが含まれています。
関数
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT関数は、チャネルの状態変更に使用されるコールバック関数を保存します。 |
コールバック関数
EVT_VMB_CHANNEL_CLOSED EvtVmbChannelClosed コールバック関数は、ゲスト仮想マシンのクライアント エンドポイントが VmbChannelDisable 関数を使用してチャネルを閉じるか、反対のエンドポイントがチャネルを取り消すか閉じるときに呼び出されます。 |
EVT_VMB_CHANNEL_OPENED EvtVmbChannelOpened コールバック関数は、ゲスト仮想マシンのクライアント エンドポイントが提供されているチャネルを開いたときに呼び出されます。 |
EVT_VMB_CHANNEL_PNP_FAILURE ゲスト仮想マシンのクライアント エンドポイントが PnP デバイスが配置されていても非同期的に接続できない場合は、EvtChannelPnpFailure コールバック関数が呼び出されます。 |
EVT_VMB_CHANNEL_POST_STARTED EvtVmbChannelPostStarted コールバック関数は、反対のエンドポイントからパケットを受信した後、どちらのエンドポイントでも呼び出されます。 |
EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket コールバック関数は、パケットが着信リング バッファーに到着したときに呼び出されます。 |
EVT_VMB_CHANNEL_PROCESSING_COMPLETE EvtVmbChannelProcessingComplete コールバック関数は、後続のパケットを配信する前に一時停止がある場合、EvtVmbChannelProcessPacket 関数によってパケットのグループが配信されたときに呼び出されます。 |
EVT_VMB_CHANNEL_RESTORE_PACKET EvtVmbChannelRestorePacket コールバック関数は、仮想化サービス プロバイダー (VSP) サーバー エンドポイントがパケット オブジェクトに関連付けられている状態を復元する必要がある場合に呼び出されます。 |
EVT_VMB_CHANNEL_SAVE_PACKET EvtVmbChannelSavePacket コールバック関数は、仮想化サービス プロバイダー (VSP) エンドポイントがパケットに関連付けられている状態を保存する必要がある場合に呼び出されます。 |
EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted コールバック関数は、チャネルが完全に構成されているが、パケットが配信される前に、いずれかのエンドポイントで呼び出されます。 これは、反対側のエンドポイントがチャネルを開いた場合、またはチャネルを閉じた後に再度開いたときに発生します。 |
EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend コールバック関数は、チャネルがクライアント エンドポイントによって閉じられたり削除されたりすると、サーバー エンドポイントで呼び出され、サーバーが停止状態になります。 |
EVT_VMB_PACKET_COMPLETION_ROUTINE EvtVmbPacketCompletionRoutine コールバック関数は、送信されたパケットに関連付けられているトランザクションが完了したときに呼び出されます。 |
FN_VMB_CHANNEL_ALLOCATE VmbChannelAllocate 関数は、既定のパラメーターとコールバックを持つ新しい VMBus チャネルを割り当てます。 |
FN_VMB_CHANNEL_CLEANUP VmbChannelCleanup 関数は、VmbChannelAllocate 関数を使用して割り当てられたチャネル、または VMBus チャネル初期化関数を使用して初期化されたチャネルを破棄します。 |
FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER VmbChannelCreateGpadlFromBuffer 関数は、クライアント側バッファーを記述するゲスト物理アドレス記述子リスト (GPADL) を作成します。 GPADL は、サーバーでバッファーにアクセスするために使用できます。 |
FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL VmbChannelCreateGpadlFromMdl 関数は、クライアント側バッファーを記述するゲスト物理アドレス記述子リスト (GPADL) を作成します。 GPADL は、サーバーでバッファーにアクセスするために使用できます。 |
FN_VMB_CHANNEL_DELETE_GPADL VmbChannelDeleteGpadl 関数は、VmbChannelCreateGpadlFromMdl または VmbChannelCreateGpadlFromBuffer 関数によってマップされたゲスト物理アドレス記述子リスト (GPADL) を削除します。 |
FN_VMB_CHANNEL_DISABLE VmbChannelDisable 関数はチャネルを無効にし、クライアント チャネルのチャネルを閉じ、サーバー チャネルのチャネル オファーを取り消します。 この関数は、チャネルが完全に破棄されるまで待機してから、チャネルが返されます。 |
FN_VMB_CHANNEL_ENABLE VmbChannelEnable 関数を使用すると、エンドポイントの種類に応じて、VMBus に接続し、チャネルをオファリングまたは開いて無効状態のチャネルを有効にします。 |
FN_VMB_CHANNEL_GET_INTERFACE_INSTANCE VmbChannelGetInterfaceInstance 関数は、チャネルを一意に識別する GUID であるアクティブなインターフェイス インスタンスを取得します。 |
FN_VMB_CHANNEL_GET_MMIO_SPACE VmbChannelGetMmioSpace 関数は、チャネルに割り当てられた MMIO 領域のカーネル仮想アドレスを取得します。 |
FN_VMB_CHANNEL_GET_POINTER VmbChannelGetPointer 関数を使用すると、クライアント ドライバーは、VmbPacketSetPointer 関数を使用して以前に保存されたポインターを取得できます。 |
FN_VMB_CHANNEL_INIT_SET_CLIENT_CONTEXT_SIZE VmbChannelInitSetClientContextSize 関数は、受信パケットごとにクライアント ドライバーに割り当てられる省略可能なコンテキスト領域のサイズを設定します。 |
FN_VMB_CHANNEL_INIT_SET_FLAGS VmbChannelInitSetFlags 関数は、サーバーまたはクライアント チャネル エンドポイントに共通のフラグを設定します。 |
FN_VMB_CHANNEL_INIT_SET_FRIENDLY_NAME VmbChannelInitSetFriendlyName 関数は、カーネル モード クライアント ライブラリ (KMCL) チャネルのフレンドリ名を設定します。 フレンドリ名は、デバッグとパフォーマンス カウンター インスタンスの名前付けに使用されます。 |
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_EXTERNAL_DATA VmbChannelInitSetMaximumExternalData 関数は、パケットによって記述されるが、パケット内で直接送信されないデータの最大サイズとチェーン長を設定します。 つまり、ExternalDataMdl によって記述されるバッファーの最大サイズです。 |
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_PACKET_SIZE VmbChannelInitSetMaximumPacketSize 関数は、チャネル経由で配信できる最大パケット サイズを設定します。これは、VmbPacketSend 関数によって指定される最大サイズです。 |
FN_VMB_CHANNEL_INIT_SET_PROCESS_PACKET_CALLBACKS VmbChannelInitSetProcessPacketCallbacks 関数は、パケット処理用のコールバック関数を設定します。 |
FN_VMB_CHANNEL_INIT_SET_STATE_CHANGE_CALLBACKS VmbChannelInitSetStateChangeCallbacks 関数は、状態変更のオプションのコールバック関数を設定します。 |
FN_VMB_CHANNEL_MAP_GPADL VmbChannelMapGpadl 関数は、ゲスト物理アドレス記述子リスト (GPADL) 番号を使用して、クライアント側バッファーをサーバー側の物理アドレス空間にマップします。 |
FN_VMB_CHANNEL_PACKET_COMPLETE VmbChannelPacketComplete 関数は、未処理のメモリ マッピングをすべてクリーンアップし、使用中のバッファーを解放し、反対のエンドポイントが完了パケットを要求した場合は、完了パケットを送信します。 |
FN_VMB_CHANNEL_PACKET_DEFER_TO_PASSIVE VmbChannelPacketDeferToPassive 関数は、EvtVmbChannelProcessPacket コールバック関数によって渡されたパケットを延期するために、クライアント ドライバーによって呼び出されます。 |
FN_VMB_CHANNEL_PACKET_FAIL VmbChannelPacketFail 関数は、回復不可能なエラーが原因でパケット処理中にパケットに失敗します。 この関数はキューを停止します。 |
FN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA VmbChannelPacketGetExternalData 関数は、パケット処理中にパケットに関連付けられている外部メモリ記述子リスト (MDL) を取得します。 |
FN_VMB_CHANNEL_PAUSE VmbChannelPause 関数は、チャネルを一時停止状態に移動し、新しい I/O を防止します。 |
FN_VMB_CHANNEL_RESTORE_FROM_BUFFER VmbChannelRestoreFromBuffer 関数は、以前に保存した状態からクライアントの状態を復元します。 ドライバーは、関数の戻り値をチェックする必要があります。 |
FN_VMB_CHANNEL_SAVE_BEGIN VmbChannelSaveBegin 関数は、チャネルの状態を保存するためのコンテキストを初期化します。 ドライバーは、関数の戻り値をチェックする必要があります。 |
FN_VMB_CHANNEL_SAVE_CONTINUE VmbChannelSaveContinue 関数は、チャネルの状態をバッファーに保存します。 この関数を実行する前に、VmbChannelSaveBegin を実行します。 ドライバーは、関数の戻り値をチェックする必要があります。 |
FN_VMB_CHANNEL_SAVE_END VmbChannelSaveEnd 関数は、チャネルの状態を保存するために割り当てられたすべてのリソースをクリーンアップします。 |
FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST VmbChannelSendSynchronousRequest 関数は、パケットを反対のエンドポイントに送信し、応答を待機します。 |
FN_VMB_CHANNEL_SET_INCOMING_PROCESSING_AT_PASSIVE VmbChannelSetIncomingProcessingAtPassive 関数は、チャネルの受信解析ルーチンに必要な IRQL をPASSIVE_LEVELに設定します。 |
FN_VMB_CHANNEL_SET_INTERRUPT_LATENCY MNF 割り込みの送信モニター待機時間に対するゲスト VM の更新。 |
FN_VMB_CHANNEL_SET_POINTER VmbChannelSetPointer 関数は、チャネル コンテキストに任意のポインターを保存します。 |
FN_VMB_CHANNEL_SET_TRANSACTION_QUOTA VmbChannelSetTransactionQuota 関数は、受信パケット クォータを設定します。 |
FN_VMB_CHANNEL_SIZEOF_PACKET VmbChannelSizeofPacket 関数は、VmbPacketInitialize 関数で使用されるバッファーに必要なサイズを計算します。 |
FN_VMB_CHANNEL_START VmbChannelStart 関数は、チャネルを一時停止状態から移動します。 |
FN_VMB_CHANNEL_UNMAP_GPADL VmbChannelUnmapGpadl 関数は、VmbChannelMapGpadl 関数によって使用してマップされたゲスト物理アドレス記述子リスト (GPADL) のマップを解除します。 この関数を呼び出す前に、サーバーがバッファーを使用してはいけません。 |
FN_VMB_CLIENT_CHANNEL_INIT_SET_RING_BUFFER_PAGE_COUNT VmbClientChannelInitSetRingBufferPageCount 関数は、クライアントが着信および発信リング バッファーに割り当てるメモリのページ数を設定します。 |
FN_VMB_CLIENT_CHANNEL_INIT_SET_TARGET_PNP VmbClientChannelInitSetTargetPnp 関数は、インターフェイスの種類とインスタンス ID によってクライアント チャネルのターゲットを設定します。 |
FN_VMB_CONVERT_VMBUS_HANDLE_TO_KERNEL_HANDLE VmbConvertVmbusHandleToKernelHandle 関数は、ユーザー モード VMBus ハンドルをカーネル モード ハンドルに変換します。 |
FN_VMB_PACKET_ALLOCATE VmbPacketAllocate 関数は、チャネルのルックアサイド リストからパケットを割り当てます。 |
FN_VMB_PACKET_FREE VmbPacketFree 関数は、VmbPacketAllocate 関数を使用して割り当てられたパケットを解放します。 |
FN_VMB_PACKET_GET_CHANNEL VmbPacketGetChannel 関数は、VMBus パケットが関連付けられている VMBus チャネルを返します。 |
FN_VMB_PACKET_GET_POINTER VmbPacketGetPointer 関数は、VmbPacketSetPointer 関数を使用して以前に保存されたポインターを取得します。 |
FN_VMB_PACKET_INITIALIZE VmbPacketInitialize 関数は、VMBus パケットを含むバッファーを初期化します。 |
FN_VMB_PACKET_RESTORE VmbPacketRestore 関数は、保存されたパケット コンテキストを含むバッファーからパケットを復元します。 |
FN_VMB_PACKET_SEND VmbPacketSend 関数は、パケット バッファーまたは外部データメモリ記述子リスト (MDL) 内のデータを送信します。 関数は、そのデータを VMBus パケット オブジェクトに関連付けます。これは、トランザクションの有効期間中のパケットを表します。 |
FN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL VmbPacketSendWithExternalMdl 関数は、パケット バッファーまたは外部データメモリ記述子リスト (MDL) 内のデータを送信します。 |
FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS VmbPacketSendWithExternalPfns 関数は、パケット バッファーまたは外部データのデータをページ フレーム番号 (PFN) の配列として送信します。 |
FN_VMB_PACKET_SET_COMPLETION_ROUTINE VmbPacketSetCompletionRoutine 関数は、パケット オブジェクトの完了ルーチンを設定します。 |
FN_VMB_PACKET_SET_POINTER VmbPacketSetPointer 関数は、任意のポインターをパケット コンテキストに保存します。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_FLAGS VmbServerChannelInitSetFlags 関数は、サーバー チャネル エンドポイントに固有のフラグを設定します。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_MMIO_MEGABYTES VmbServerChannelInitSetMmioMegabytes 関数は、デバイス用に予約するゲスト メモリ マップ I/O (MMIO) 領域の量 (メガバイト) を指定します。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_SAVE_RESTORE_PACKET_CALLBACKS VmbServerChannelInitSetSaveRestorePacketCallbacks 関数は、ドライバーが保存関数 (VmbChannelSaveBegin、VmbChannelSaveContinue、VmbChannelSaveEnd、VmbChannelRestoreFromBuffer 関数など) を呼び出すときに、各パケットに対して呼び出される保存および復元コールバック関数を設定します。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_INTERFACE_ID VmbServerChannelInitSetTargetInterfaceId 関数は、チャネル オファーのターゲット インターフェイスの種類 GUID とインスタンス GUID を設定します。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_VTL VmbServerChannelInitSetTargetVtl 関数は、このチャネルのターゲット VTL を設定します。 チャネルは、指定された VTL で実行されているクライアントに提供され、それ以外は提供されません。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_VMBUS_HANDLE VmbServerChannelInitSetVmbusHandle 関数は、VMBus のインスタンスをこのチャネルに関連付けます。 |
構造
KMCL_SERVER_ONLY_METHODS KMCL_SERVER_ONLY_METHODS構造体には、VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスのサーバー専用関数の関数ポインターが含まれています。 |
KMCL_SERVER_ONLY_METHODS_V5 KMCL_CLIENT_INTERFACE_V1構造体には、VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスのクライアント関数の関数ポインターが含まれています。 |
VMB_CHANNEL_STATE_CHANGE_CALLBACKS VMB_CHANNEL_STATE_CHANGE_CALLBACKS構造体には、チャネルの状態変更に関連するコールバック関数が含まれています。 |