/// <summary>
        /// Method to create a TSMM_PRESENTATION_REQUEST packet.
        /// </summary>
        /// <param name="presentationId">A number that uniquely identifies the video stream on the server.</param>
        /// <param name="command">A number that identifies which operation the client is to perform. </param>
        /// <param name="srcWidth">This is the width of the video stream after scaling back to the original resolution.</param>
        /// <param name="srcHeight">This is the height of the video stream after scaling back to the original resolution.</param>
        /// <param name="scaledWidth">This is the width of the video stream.</param>
        /// <param name="scaledHeight">This is the height of the video stream.</param>
        /// <param name="geometryId">This field is used to correlate this video data with its geometry.</param>
        /// <param name="videoSubTypeId">This field identifies the Media Foundation video subtype of the video stream.</param>
        public TSMM_PRESENTATION_REQUEST CreatePresentationRequest(
            byte presentationId,
            CommandValues command,
            uint srcWidth,
            uint srcHeight,
            uint scaledWidth,
            uint scaledHeight,
            UInt64 geometryId,
            VideoSubtype videoSubType,
            byte[] extraData)
        {
            TSMM_PRESENTATION_REQUEST request = new TSMM_PRESENTATION_REQUEST();

            request.Header.PacketType = PacketTypeValues.TSMM_PACKET_TYPE_PRESENTATION_REQUEST;
            request.PresentatioinId   = presentationId;
            request.Version           = RdpevorVersionValues.RDP8;
            request.Command           = command;

            //The InvalidCommand packet is just for negative test, all other fiels are set same as Start packet.
            if (command == CommandValues.Start || command == CommandValues.InvalidCommand)
            {
                request.FrameRate          = FrameRate;
                request.AverageBitrateKbps = AverageBitrateKbps;
                request.Reserved           = 0;
                request.SourceWidth        = srcWidth;
                request.SourceHeight       = srcHeight;
                request.ScaledWidth        = srcWidth;
                request.ScaledHeight       = srcHeight;
                request.hnsTimestampOffset = (ulong)DateTime.Now.ToFileTimeUtc();
                request.GeometryMappingId  = geometryId;
                request.VideoSubtypeId     = RdpevorTestData.GetH264VideoSubtypeId();
                if (videoSubType == VideoSubtype.MFVideoFormat_H264)
                {
                    request.VideoSubtypeId = RdpevorTestData.GetH264VideoSubtypeId();
                }
                request.pExtraData    = extraData;
                request.cbExtra       = (uint)extraData.Length;
                request.Reserved2     = 0;
                request.Header.cbSize = (uint)(sizeOfPresentationFixedFields + request.pExtraData.Length);
            }
            else if (command == CommandValues.Stop)
            {
                request.Header.cbSize = 0x45;

                //If the command is to stop the presentation, only the Header, PresentationId, Version, and Command fields are valid.
                //So set all other fields to 0.
                request.FrameRate          = 0;
                request.AverageBitrateKbps = 0;
                request.Reserved           = 0;
                request.SourceWidth        = 0;
                request.SourceHeight       = 0;
                request.ScaledWidth        = 0;
                request.ScaledHeight       = 0;
                request.hnsTimestampOffset = 0;
                request.GeometryMappingId  = 0;
                request.VideoSubtypeId     = new byte[16];
                request.cbExtra            = 0;
                request.pExtraData         = null;//TDI
                request.Reserved2          = 0;
            }
            return(request);
        }
 //private get Test Data
 private void GetTestData()
 {
     testData = new RdpevorTestData();
     try
     {
         String RdpevorTestDataPath = this.Site.Properties["RdpevorTestDataPath"];
         testData.LoadXMLFile(RdpevorTestDataPath);
     }
     catch (System.Xml.XmlException ex)
     {
         this.TestSite.Assert.Fail(ex.Message);
     }
 }