次の方法で共有


VIRTUALCHANNELINIT コールバック関数 (cchannel.h)

リモート デスクトップ サービス仮想チャネルへのクライアント DLL のアクセスを初期化します。 クライアントは VirtualChannelInit を 呼び出して、その仮想チャネルの名前を登録します。

リモート デスクトップ サービスは、 VirtualChannelEntry エントリ ポイントに渡される CHANNEL_ENTRY_POINTS 構造体内の VirtualChannelInit 関数へのポインターを提供します。

構文

VIRTUALCHANNELINIT Virtualchannelinit;

UINT VCAPITYPE Virtualchannelinit(
  [in]      LPVOID *ppInitHandle,
  [in, out] PCHANNEL_DEF pChannel,
  [in]      INT channelCount,
  [in]      ULONG versionRequested,
  [in]      PCHANNEL_INIT_EVENT_FN pChannelInitEventProc
)
{...}

パラメーター

[in] ppInitHandle

クライアント接続を識別するハンドルを受け取る変数へのポインター。 このハンドルを使用して、 VirtualChannelOpen 関数の後続の呼び出しでクライアントを識別します。

[in, out] pChannel

CHANNEL_DEF構造体の配列へのポインター。 各構造体には、クライアント DLL が開く仮想チャネルの名前と初期化オプションが含まれています。 VirtualChannelInit 呼び出しでは、これらの仮想チャネルは開かないことに注意してください。このアプリケーションで使用する名前のみが予約されます。

[in] channelCount

pChannel 配列内のエントリの数を指定します。

[in] versionRequested

仮想チャネルサポートのレベルを指定します。 このパラメーターを VIRTUAL_CHANNEL_VERSION_WIN2000 に設定します。

[in] pChannelInitEventProc

リモート デスクトップ サービスがクライアント DLL に仮想チャネル イベントを通知するために呼び出す、アプリケーション定義の VirtualChannelInitEvent 関数へのポインター。

戻り値

関数が成功した場合、戻り値は CHANNEL_RC_OK

エラーが発生した場合、関数は次のいずれかの値を返します。

注釈

VirtualChannelInit 関数は、VirtualChannelEntry 関数からのみ呼び出すことができます。 VirtualChannelInit の呼び出しは、それ以外の場合は失敗します。

VirtualChannelInit が正常に返されると、リモート デスクトップ サービスによって要求されたチャネルが登録されます。 ただし、リモート デスクトップ サービスが他の初期化を完了していない可能性があります。 すべての初期化が完了すると、リモート デスクトップ サービスは、CHANNEL_EVENT_INITIALIZED イベントを使用して VirtualChannelInitEvent コールバック関数を呼び出します。

この関数を呼び出す前に、使用可能な仮想チャネルの数を想定しないでください。システムおよびその他のプラグインには予約済みの仮想チャネルが含まれている可能性があるためです。 したがって、この関数を呼び出した後は、常にCHANNEL_RC_TOO_MANY_CHANNELSリターン コードをチェックする必要があります。

VirtualChannelInit が返されると、チャネルが正常に初期化された場合、各CHANNEL_DEF構造体のオプション メンバーにCHANNEL_OPTION_INITIALIZEDが含まれます。

クライアント セッションあたりのチャネルの最大数は CHANNEL_MAX_COUNT

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー cchannel.h

こちらもご覧ください

CHANNEL_DEF

VirtualChannelEntry

VirtualChannelInitEvent