다음을 통해 공유


CHANNEL_PDU_HEADER 구조체(pchannel.h)

가상 채널의 서버 끝에서 수신되는 데이터 블록에 대한 정보를 포함합니다.

구문

typedef struct tagCHANNEL_PDU_HEADER {
  UINT32 length;
  UINT32 flags;
} CHANNEL_PDU_HEADER, *PCHANNEL_PDU_HEADER;

멤버

length

이 헤더를 제외한 데이터 블록의 크기(바이트)입니다.

flags

데이터 블록에 대한 정보입니다. 다음 비트 플래그가 설정됩니다. 다음 목록의 값을 비교할 때 '==' 연산자를 사용하여 직접 비교하면 안 됩니다. 대신 목록에 설명된 비교 메서드를 사용합니다.

CHANNEL_FLAG_FIRST (1)

청크는 단일 쓰기 작업으로 작성된 데이터의 시작입니다.

이 플래그를 비교할 때 비트 비교를 사용합니다.

CHANNEL_FLAG_LAST (2)

청크는 단일 쓰기 작업으로 작성된 데이터의 끝입니다.

이 플래그를 비교할 때 비트 비교를 사용합니다.

CHANNEL_FLAG_MIDDLE (0)

이것이 기본값입니다. 청크는 단일 쓰기 작업으로 작성된 데이터 블록의 중간에 있습니다.

비트 비교를 사용하여 이 플래그 값을 직접 비교하지 마세요. 대신 비트 비교를 사용하여 플래그 값이 CHANNEL_FLAG_FIRST 또는 CHANNEL_FLAG_LAST 아닌지 확인합니다. 이 작업은 다음 비교를 사용하여 수행됩니다.

Result = !(flags & CHANNEL_FLAG_FIRST) && !(flags & CHANNEL_FLAG_LAST)

CHANNEL_FLAG_ONLY (3)

CHANNEL_FLAG_FIRSTCHANNEL_FLAG_LAST 값을 결합합니다. 청크에는 단일 쓰기 작업의 모든 데이터가 포함됩니다.

이 플래그를 비교할 때 비트 비교를 사용합니다.

설명

경우에 따라 원격 데스크톱 서비스는 WTSVirtualChannelRead 함수를 호출하여 읽은 각 데이터 청크의 시작 부분에 CHANNEL_PDU_HEADER 구조를 배치합니다. 이 문제는 가상 채널을 초기화하기 위해 VirtualChannelInit 함수를 호출할 때 클라이언트 DLL이 CHANNEL_OPTION_SHOW_PROTOCOL 옵션을 설정하는 경우에 발생합니다. 또한 채널이 IWTSVirtualChannel::Write 메서드를 사용하여 작성된 동적 가상 채널인 경우에도 발생합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
머리글 pchannel.h

추가 정보

IWTSVirtualChannel::Write

VirtualChannelInit

VirtualChannelWrite

WTSVirtualChannelRead