다음을 통해 공유


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