PVIRTUALCHANNELINIT
コールバックシグネチャ
DWORD PVIRTUALCHANNELINIT(
void** ppInitHandle,
CHANNEL_DEF* pChannel,
INT channelCount,
DWORD versionRequested,
PCHANNEL_INIT_EVENT_FN pChannelInitEventProc
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| ppInitHandle | void** | クライアント接続を識別するハンドルを受け取る変数へのポインター。このハンドルは、後続の VirtualChannelOpen 関数の呼び出しでクライアントを識別するために使用します。 |
| pChannel | CHANNEL_DEF* | CHANNEL_DEF 構造体の配列へのポインター。各構造体には、クライアント DLL が開く仮想チャネルの名前と初期化オプションが格納されます。VirtualChannelInit の呼び出しはこれらの仮想チャネルを開くわけではなく、このアプリケーションが使用する名前を予約するだけである点に注意してください。 |
| channelCount | INT | pChannel 配列の要素数を指定します。 |
| versionRequested | DWORD | 仮想チャネルのサポート レベルを指定します。このパラメーターには VIRTUAL_CHANNEL_VERSION_WIN2000 を設定します。 |
| pChannelInitEventProc | PCHANNEL_INIT_EVENT_FN | アプリケーション定義の VirtualChannelInitEvent 関数へのポインター。リモート デスクトップ サービスは、仮想チャネルのイベントをクライアント DLL に通知するためにこの関数を呼び出します。 |
公式ドキュメント
クライアント DLL による、リモート デスクトップ サービスの仮想チャネルへのアクセスを初期化します。クライアントは VirtualChannelInit を呼び出して、自身の仮想チャネルの名前を登録します。
リモート デスクトップ サービスは、VirtualChannelInit 関数へのポインターを、VirtualChannelEntry エントリ ポイントに渡される CHANNEL_ENTRY_POINTS 構造体で提供します。
戻り値
関数が成功した場合、戻り値は CHANNEL_RC_OK です。
エラーが発生した場合、関数は次のいずれかの値を返します。
解説(Remarks)
VirtualChannelInit 関数は、VirtualChannelEntry 関数の中からのみ呼び出すことができます。それ以外のタイミングで VirtualChannelInit を呼び出すと失敗します。
VirtualChannelInit が正常に返った時点で、リモート デスクトップ サービスは要求されたチャネルを登録しています。ただし、その他の初期化が完了していない場合があります。すべての初期化が完了すると、リモート デスクトップ サービスは CHANNEL_EVENT_INITIALIZED イベントを指定して、VirtualChannelInitEvent コールバック関数を呼び出します。
システムや他のプラグインが仮想チャネルを予約している可能性があるため、この関数を呼び出す前に、使用可能な仮想チャネルの数について想定を置かないでください。したがって、この関数の呼び出し後は常に CHANNEL_RC_TOO_MANY_CHANNELS の戻り値を確認してください。
VirtualChannelInit が返るとき、チャネルが正常に初期化されていれば、各 CHANNEL_DEF 構造体の options メンバーに CHANNEL_OPTION_INITIALIZED が含まれます。
クライアント セッションあたりのチャネルの最大数は CHANNEL_MAX_COUNT です。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)