/// <summary>
        /// Verify RopQueryColumnsAll Failure Response
        /// </summary>
        /// <param name="ropQueryColumnsAllResponse">The response of RopQueryColumnsAll request</param>
        /// <param name="inputHandleIndex">The field of InputHandleIndex in RopQueryColumnsAll request</param>
        private void VerifyRopQueryColumnsAllFailureResponse(RopQueryColumnsAllResponse ropQueryColumnsAllResponse, byte inputHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1437");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1437
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropQueryColumnsAllResponse.RopId.GetType(),
                1437,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] RopId (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1439");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1439
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopQueryColumnsAll,
                ropQueryColumnsAllResponse.RopId,
                1439,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] RopId (1 byte): For this operation[RopQueryColumnsAll], this field[RopId (1 byte)] is set to 0x37.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1440");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1440
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropQueryColumnsAllResponse.InputHandleIndex.GetType(),
                1440,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] InputHandleIndex (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1441");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1441
            Site.CaptureRequirementIfAreEqual<byte>(
                inputHandleIndex,
                ropQueryColumnsAllResponse.InputHandleIndex,
                1441,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] InputHandleIndex (1 byte): This index MUST be set to the value specified in the InputHandleIndex field in the request.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1442");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1442
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropQueryColumnsAllResponse.ReturnValue.GetType(),
                1442,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] ReturnValue (4 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1444");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1444
            Site.CaptureRequirementIfAreNotEqual<uint>(
                SuccessReturnValue,
                ropQueryColumnsAllResponse.ReturnValue,
                1444,
                @"[In RopQueryColumnsAll ROP Failure Response Buffer] ReturnValue (4 bytes): For this response[Failure Response], this field is set to a value other than 0x00000000.");
        }
        /// <summary>
        /// Verify RopQueryColumnsALL Response
        /// </summary>
        /// <param name="queryColumnsAllResponse">RopQueryColumnsAllResponse structure data that needs verification</param>
        private void VerifyRopQueryColumnsALLResponse(RopQueryColumnsAllResponse queryColumnsAllResponse)
        {
            this.VerifyRPCLayerRequirement();

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R220");

            // Verify MS-OXCTABL requirement: MS-OXCTABL_R220
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(ushort),
                queryColumnsAllResponse.PropertyTagCount.GetType(),
                220,
                @"[In RopQueryColumnsAll ROP Response Buffer] PropertyTagCount (2 bytes): An unsigned integer that specifies the number of property tags in the PropertyTags field.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R221");

            // Verify MS-OXCTABL requirement: MS-OXCTABL_R221
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(PropertyTag[]),
                queryColumnsAllResponse.PropertyTags.GetType(),
                221,
                @"[In RopQueryColumnsAll ROP Response Buffer] PropertyTags (variable): An array of property tags, each of which corresponds to an available column in the table.");

            for (int i = 0; i < queryColumnsAllResponse.PropertyTags.Length; i++)
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCTABL_R222");

                // Verify MS-OXCTABL requirement: MS-OXCTABL_R222
                Site.CaptureRequirementIfAreEqual<Type>(
                    typeof(PropertyTag),
                    queryColumnsAllResponse.PropertyTags[i].GetType(),
                    222,
                    @"[In RopQueryColumnsAll ROP Response Buffer] Each property tag is represented by a PropertyTag structure, as specified in [MS-OXCDATA] section 2.9.");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R181");

                // Verify MS-OXCDATA requirement: MS-OXCDATA_R181
                Site.CaptureRequirementIfAreEqual<Type>(
                    typeof(ushort),
                    queryColumnsAllResponse.PropertyTags[i].PropertyType.GetType(),
                    "MS-OXCDATA",
                    181,
                    @"[In PropertyTag Structure] PropertyType (2 bytes): An unsigned integer that identifies the data type of the property value, as specified by the table in section 2.11.1.");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R182");

                // Verify MS-OXCDATA requirement: MS-OXCDATA_R182
                Site.CaptureRequirementIfAreEqual<Type>(
                    typeof(ushort),
                    queryColumnsAllResponse.PropertyTags[i].PropertyId.GetType(),
                    "MS-OXCDATA",
                    182,
                    @"[In PropertyTag Structure] PropertyId (2 bytes): An unsigned integer that identifies the property.");

                // PtypInteger32 Property Type Value is 0x0003.
                if (queryColumnsAllResponse.PropertyTags[i].PropertyType == 0x0003)
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R2691");

                    // Verify MS-OXCDATA requirement: MS-OXCDATA_R2691
                    Site.CaptureRequirement(
                        "MS-OXCDATA",
                        2691,
                        @"[In Property Data Types] PtypInteger32 (PT_LONG, PT_I4, int, ui4) is that 4 bytes; a 32-bit integer [MS-DTYP]: INT32 with Property Type Value 0x0003,%x03.00.");
                }

                // PtypInteger64 Property Type Value is 0x0014.
                if (queryColumnsAllResponse.PropertyTags[i].PropertyType == 0x0014)
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R2699");

                    // Verify MS-OXCDATA requirement: MS-OXCDATA_R2699
                    Site.CaptureRequirement(
                        "MS-OXCDATA",
                        2699,
                        @"[In Property Data Types] PtypInteger64 (PT_LONGLONG, PT_I8, i8, ui8) is that 8 bytes; a 64-bit integer [MS-DTYP]: LONGLONG with Property Type Value 0x0014,%x14.00.");
                }
            }
        }
        /// <summary>
        /// Verify RopQueryColumnsAll Success Response
        /// </summary>
        /// <param name="ropQueryColumnsAllResponse">The response of RopQueryColumnsAll request</param>
        /// <param name="inputHandleIndex">The field of InputHandleIndex in RopQueryColumnsAll request</param>
        private void VerifyRopQueryColumnsAllSuccessResponse(RopQueryColumnsAllResponse ropQueryColumnsAllResponse, byte inputHandleIndex)
        {
            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1423");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1423
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropQueryColumnsAllResponse.RopId.GetType(),
                1423,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] RopId (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1425");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1425
            Site.CaptureRequirementIfAreEqual<byte>(
                (byte)RopId.RopQueryColumnsAll,
                ropQueryColumnsAllResponse.RopId,
                1425,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] RopId (1 byte): For this operation[RopQueryColumnsAll], this field[RopId (1 byte)] is set to 0x37.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1426");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1426
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(byte),
                ropQueryColumnsAllResponse.InputHandleIndex.GetType(),
                1426,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] InputHandleIndex (1 byte): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1427");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1427
            Site.CaptureRequirementIfAreEqual<byte>(
                inputHandleIndex,
                ropQueryColumnsAllResponse.InputHandleIndex,
                1427,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] InputHandleIndex (1 byte): This index MUST be set to the value specified in the InputHandleIndex field in the request.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1428");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1428
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(uint),
                ropQueryColumnsAllResponse.ReturnValue.GetType(),
                1428,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] ReturnValue (4 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1430");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1430
            Site.CaptureRequirementIfAreEqual<uint>(
                SuccessReturnValue,
                ropQueryColumnsAllResponse.ReturnValue,
                1430,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] ReturnValue (4 bytes): For this response[Success Response], this field is set to 0x00000000.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1431");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1431
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(ushort),
                ropQueryColumnsAllResponse.PropertyTagCount.GetType(),
                1431,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTagCount (2 bytes): An unsigned integer.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1433");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1433
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(PropertyTag[]),
                ropQueryColumnsAllResponse.PropertyTags.GetType(),
                1433,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTags (variable): An array of PropertyTag structures.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCROPS_R1434");

            // Verify MS-OXCROPS requirement: MS-OXCROPS_R1434
            Site.CaptureRequirementIfAreEqual<int>(
                ropQueryColumnsAllResponse.PropertyTags.Length,
                ropQueryColumnsAllResponse.PropertyTagCount,
                1434,
                @"[In RopQueryColumnsAll ROP Success Response Buffer] PropertyTags (variable): The number of structures contained in this field is specified by the PropertyTagCount field.");
        }