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

遠端桌面服務呼叫的應用程式定義 VirtualChannelInitEvent 函式指標,以通知用戶端 DLL 的虛擬通道事件。

傳回值

如果函式成功,傳回值 會CHANNEL_RC_OK

如果發生錯誤,函式會傳回下列其中一個值。

備註

您只能從 VirtualChannelEntry 函式呼叫 VirtualChannelInit 函式。 任何其他時間對 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