4.1.1 Channel Setup Sequence

After a new channel is established, the server sends the Set Channel Parameters message to the client. The message specifies the PresentationId and the StreamId for the channel. The following sequence shows the Set Channel Parameters message for a StreamId of 0x00000000.

 Set Channel Parameters
 ChannelName = TSMF,32,server to client
 00000000 00 00 00 40 00 00 00 00 01 01 00 00 4a 2a fd 28 ...@........J*.(
 00000010 c7 ef a0 44 bb ca f3 17 89 96 9f d2 00 00 00 00 ...D............
  
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 01 01 00 00 -> SET_CHANNEL_PARAMS = 0x101
 4a 2a fd 28 -> PresentationId (GUID) = {28fd2a4a-efc7-44a0-bbca-f31789969fd2} 
 c7 ef a0 44
 bb ca f3 17
 89 96 9f d2
 00 00 00 00 -> StreamId = 0x00 
  

The following annotation shows the Exchange Capabilities Request message sent from the server to the client. This message is sent after the Set Channel Parameters message. The request message contains two capabilities.

  
 Exchange Capabilities Request
 ChannelName = TSMF,40,server to client
 00000000 00 00 00 40 00 00 00 00 00 01 00 00 02 00 00 00 ...@............
 00000010 01 00 00 00 04 00 00 00 01 00 00 00 02 00 00 00 ................
 00000020 04 00 00 00 01 00 00 00             ........
 00 00 00 40 -> Interface Id = 0x00000000 | mask STREAM_ID_PROXY (0x40000000)
 00 00 00 00 -> Message Id = 0x00000000
 00 01 00 00 -> EXCHANGE_CAPABILITIES_REQ   = 0x100
 02 00 00 00 -> numHostCapabilities = 0x02
 01 00 00 00 -> CapabilityType of the first TSMM_CAPABILITIES structure = 0x01, capability 
         type = version supported
 04 00 00 00 -> cbCapabilityLength of the first TSMM_CAPABILITIES structure
 02 00 00 00 -> pCapabilityData of the first TSMM_CAPABILITIES structure = 0x02, supported      
         version is 2
 02 00 00 00 -> CapabilityType of the second TSMM_CAPABILITIES structure = 0x02, capability 
         Type = platform supported
 04 00 00 00 -> cbCapabilityLength of the second TSMM_CAPABILITIES structure
 01 00 00 00 -> platform supported = MMREDIR_CAPABILITY_PLATFORM_MF = 0x01 

The following annotation shows the Exchange Capabilities Response message sent from the client to the server. The response contains two capabilities.

  
 Exchange Capabilities Response
 ChannelName = TSMF,40,client to server
 00000000 00 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00 ................
 00000010 04 00 00 00 01 00 00 00 02 00 00 00 04 00 00 00 ................
 00000020 03 00 00 00 00 00 00 00 
  
 00 00 00 80 -> Interface Id = 0x00000000 | mask STREAM_ID_STUB (0x80000000)
 00 00 00 00 -> Message Id = 0x00000000
 02 00 00 00 -> numClientCapabilities = 0x02
 01 00 00 00 -> CapabilityType of the first TSMM_CAPABILITIES structure = 0x01, capability 
         type = version supported
 04 00 00 00 -> cbCapabilityLength of the first TSMM_CAPABILITIES structure
 02 00 00 00 -> pCapabilityData of the first TSMM_CAPABILITIES structure = 0x02, supported      
         version is 2
 02 00 00 00 -> CapabilityType of the second TSMM_CAPABILITIES structure = 0x02, capability 
         Type = platform supported
 04 00 00 00 -> cbCapabilityLength of the second TSMM_CAPABILITIES structure
 03 00 00 00 -> pCapabilityData of the second TSMM_CAPABILITIES structure =       
                   MMREDIR_CAPABILITY_PLATFORM_MF (0x01)|   
                   MMREDIR_CAPABILITY_PLATFORM_DSHOW (0x02) = 0x03
 00 00 00 00 -> Result = S_OK