All Peer Content Caching and Retrieval: Hosted Cache Protocol request messages use a common connection information structure, which describes the information needed by the hosted cache to use the Peer Content Caching and Retrieval: Retrieval Protocol [MS-PCCRR] as a client-role peer, to download needed blocks from the client as a server-role peer.
        /// <summary>
        /// Convert the connectionInformationStack struct defined in stack to adapter 
        /// </summary>
        /// <param name="connectionInformationStack">The connectionInformationStack message</param>
        /// <returns>Return the connectionInformationStack type defined in adapter</returns>
        private static ConnectionInformation ConvertFromStackForConnInfo(CONNECTION_INFORMATION connectionInformationStack)
        {
            ConnectionInformation connectionInformation;
            connectionInformation.Padding = connectionInformationStack.Padding;
            connectionInformation.Port = connectionInformationStack.Port;

            return connectionInformation;
        }
        /// <summary>
        /// Validate the CONNECTION_INFORMATION of request message.
        /// </summary>
        /// <param name="connectInfo">A CONNECTION_INFORMATION in the request message.</param>
        private void ValidateConnectionInformation(CONNECTION_INFORMATION connectInfo)
        {
            // Capture MS-PCHC R25
            int portSize = System.Runtime.InteropServices.Marshal.SizeOf(connectInfo.Port);
            Site.CaptureRequirementIfAreEqual<int>(
                2,
                portSize,
                25,
                @"[In CONNECTION_INFORMATION] Port (2 bytes):  A 16-bit unsigned integer that MUST
                be set by the client to the port on which it is listening as a server-role peer,
                for use with the retrieval protocol.");

            // Capture MS-PCHC R26
            Site.CaptureRequirementIfAreEqual<int>(
                6,
                connectInfo.Padding.Length,
                26,
                "[In CONNECTION_INFORMATION] Padding (6 bytes).");

            int connectInfoSize = System.Runtime.InteropServices.Marshal.SizeOf(connectInfo);
            Site.CaptureRequirementIfAreEqual<int>(
                8,
                connectInfoSize,
                31,
                @"[In INITIAL_OFFER_MESSAGE] ConnectionInformation (8 bytes):
                A CONNECTION_INFORMATION structure (section 2.2.1.2).");

            // Capture MS-PCHC R130
            Site.CaptureRequirementIfAreEqual<int>(
                8,
                connectInfoSize,
                130,
                @"[In Request Messages]ConnectionInformation (8 bytes):
                A CONNECTION_INFORMATION structure (section 2.2.1.2).");
        }