PCHANNEL_INIT_EVENT_FN
コールバックシグネチャ
void PCHANNEL_INIT_EVENT_FN(
void* pInitHandle,
DWORD event,
void* pData,
DWORD dataLength
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| pInitHandle | void* | クライアント接続へのハンドルです。これは VirtualChannelInit 関数の ppInitHandle パラメーターで返されるハンドルです。 |
| event | DWORD | 通知の原因となったイベントを示します。このパラメーターには、次のいずれかの値を指定できます。 CHANNEL_EVENT_INITIALIZED (0)リモート デスクトップ接続 (RDC) クライアントの初期化が完了しました。pData パラメーターは NULL です。 CHANNEL_EVENT_CONNECTED (1)仮想チャネルをサポートする RD セッション ホスト サーバーとの接続が確立されました。pData パラメーターは、サーバー名を格納した null 終端文字列へのポインターです。 CHANNEL_EVENT_V1_CONNECTED (2)仮想チャネルをサポートしていない RD セッション ホスト サーバーとの接続が確立されました。pData パラメーターは NULL です。 CHANNEL_EVENT_DISCONNECTED (3)RD セッション ホスト サーバーへの接続が切断されました。pData パラメーターは NULL です。 CHANNEL_EVENT_TERMINATED (4)クライアントが終了しました。pData パラメーターは NULL です。 CHANNEL_EVENT_REMOTE_CONTROL_START (5)リモート コントロール操作が開始されました。pData パラメーターは NULL です。 CHANNEL_EVENT_REMOTE_CONTROL_STOP (6)リモート コントロール操作が終了しました。pData パラメーターは、サーバー名を格納した null 終端文字列へのポインターです。 |
| pData | void* | イベントに関する追加データへのポインターです。データの型は、前述の各イベントの説明のとおり、イベントによって異なります。 |
| dataLength | DWORD | pData バッファー内のデータのサイズをバイト単位で指定します。 |
公式ドキュメント
仮想チャネルのイベントをクライアント DLL に通知するために、リモート デスクトップ サービスが呼び出すアプリケーション定義のコールバック関数です。
PCHANNEL_INIT_EVENT_FN 型は、このコールバック関数へのポインターを定義します。VirtualChannelInitEvent は、アプリケーション定義またはライブラリ定義の関数名を表すプレースホルダーです。
戻り値
この関数は値を返しません。
解説(Remarks)
クライアント DLL は VirtualChannelInit 関数を使用して、自身の VirtualChannelInitEvent 関数をリモート デスクトップ サービスに登録します。
この関数は、ハンドル単位でリエントラントです。実行中に再度呼び出されることがありますが、同じハンドルに対して同時に複数回呼び出されることはありません。
この関数は、VirtualChannelEntry が完了した後にのみ呼び出されます。
接続が別のセッションに転送された場合、CHANNEL_EVENT_CONNECTED および CHANNEL_EVENT_DISCONNECTED のイベント通知は送信されません。ただし、接続の転送先となるセッションを管理しているサーバー側プラグインは、再接続の通知を受け取ります。接続の転送には、Tscon.exe などのサーバー側ツールを使用できます。再接続の通知の詳細については、セッションの接続と切断の監視を参照してください。
ユーザー モード プラグインに再接続されたことを通知する必要がある場合 (たとえば、状態をリセットする必要がある場合) は、サーバー側プラグインからクライアントに通知メッセージを送信してください。この通知には、プラグイン同士が通信に使用しているプロトコルを使用します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)