コード例 #1
0
        /// <summary>
        /// Verify data type FileFsControlInformation
        /// </summary>
        /// <param name="fileFsControlInformation"> FileFsControlInformation type data </param>
        /// <param name="freeSpaceThreshold"> A 64-bit signed integer that contains the minimum amount of free disk space in bytes that is required for the indexing service to continue to filter documents and merge word lists. </param>
        /// <param name="freeSpaceStopFiltering"> A 64-bit signed integer that contains the minimum amount of free disk space in bytes that is required for the content indexing service to continue filtering. </param>
        /// <param name="defaultQuotaLimit"> A 64-bit signed integer that contains the default per-user disk quota limit in bytes for the volume. </param>
        public void VerifyDataTypeFileFsControlInformationForOld(
            FileFsControlInformation fileFsControlInformation,
            // long freeSpaceThreshold,
            long defaultQuotaLimit)
        {
            Site.DefaultProtocolDocShortName = "MS-FSCC";
            //
            // Add the debug information
            //
            Site.Log.Add(LogEntryKind.Debug,
                "Verify MS-FSCC_R1720 ");
            //
            // Verify requirement 1720
            //
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(FileFsControlInformation),
                fileFsControlInformation.GetType(),
                1720,
                @"The message[FileFsControlInformation] contains a FILE_FS_CONTROL_INFORMATION data element.");

            //
            // Add the debug information
            //
            Site.Log.Add(LogEntryKind.Debug,
                "Verify MS-FSCC_R1734 Actual DefaultQuotaLimit: {0}, Expected DefaultQuotaLimit: {1}.",
                fileFsControlInformation.DefaultQuotaLimit, defaultQuotaLimit);
            //
            // Verify requirement 1734
            //
            // Verify the type and the value of the DefaultQuotaLimit
            bool isVerifyR1734 = (
                fileFsControlInformation.DefaultQuotaLimit.GetType() == typeof(Int64) &&
                fileFsControlInformation.DefaultQuotaLimit == (ulong)defaultQuotaLimit);

            Site.CaptureRequirementIfIsTrue(
                isVerifyR1734,
                1734,
                @"[In FILE_FS_CONTROL_INFORMATION]DefaultQuotaLimit (8 bytes):  A 64-bit signed integer that contains
                the default per-user disk quota limit in bytes for the volume.");

            //
            // Add the debug information
            //
            Site.Log.Add(LogEntryKind.Debug,
                "Verify MS-FSCC_R1736 actual FileSystemControlFlags is : {0}",
                fileFsControlInformation.FileSystemControlFlags);
            //
            // Verify requirement 1736
            //
            // Verify the type of FileSystemControlFlags
            // And for the value of it, we'll verify in the next rs
            Site.CaptureRequirementIfAreEqual<Type>(
                typeof(FileSystemControlFlags_Values),
                fileFsControlInformation.FileSystemControlFlags.GetType(),
                1736,
                @"[In FILE_FS_CONTROL_INFORMATION]FileSystemControlFlags (4 bytes):
                A 32-bit unsigned integer that contains a bitmask of flags that control quota enforcement and
                logging of user-related quota events on the volume.");

            //
            // Add the debug information
            //
            Site.Log.Add(LogEntryKind.Debug,
                "Verify MS-FSCC_R1737 Actual FileSystemControlFlags: {0}.",
                fileFsControlInformation.FileSystemControlFlags);
            //
            // Verify requirement 1737
            //
            // As the type of the FileSystemControlFlags is verified above, we didn't here again
            // Verify the valid value of FileSystemControlFlags
            const uint FileSystemControlFlagsBitUsed = (
                0x00000008 | 0x00000020 | 0x00000010 | 0x00000080 | 0x00000040 | 0x00000002 |
                0x00000001 | 0x00000100 | 0x00000200);

            // FileSystemControlFlagsBitUnUsed contains the bit that FileSystemControlFlags unused
            const uint fileSystemControlFlagsBitUnUsed = ~FileSystemControlFlagsBitUsed;

            bool isVerifyR1737 = (
                ((uint)fileFsControlInformation.FileSystemControlFlags & fileSystemControlFlagsBitUnUsed) == 0x00000000);

            Site.CaptureRequirementIfIsTrue(
                isVerifyR1737,
                1737,
                @"[In FILE_FS_CONTROL_INFORMATION]FileSystemControlFlags (4 bytes):  The following bit flags
                [FILE_VC_CONTENT_INDEX_DISABLED 0x00000008, FILE_VC_LOG_QUOTA_LIMIT 0x00000020,
                FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010, FILE_VC_LOG_VOLUME_LIMIT 0x00000080,
                FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040, FILE_VC_QUOTA_ENFORCE 0x00000002,
                FILE_VC_QUOTA_TRACK 0x00000001, FILE_VC_QUOTAS_INCOMPLETE 0x00000100,
                FILE_VC_QUOTAS_REBUILDING 0x00000200] are valid in any combination.");
            //
            // Add the debug information
            //
            Site.Log.Add(LogEntryKind.Debug,
                "Verify MS-FSCC_R1739 the FileSystemControlFlags is {0}",
                fileFsControlInformation.FileSystemControlFlags);
            //
            // Verify requirement 1739
            //
            const uint bitUsed_r1739 =
                (uint)FileSystemControlFlags_Values.FILE_VC_CONTENT_INDEX_DISABLED |
                (uint)FileSystemControlFlags_Values.FILE_VC_LOG_QUOTA_LIMIT |
                (uint)FileSystemControlFlags_Values.FILE_VC_LOG_QUOTA_THRESHOLD |
                (uint)FileSystemControlFlags_Values.FILE_VC_LOG_VOLUME_LIMIT |
                (uint)FileSystemControlFlags_Values.FILE_VC_LOG_VOLUME_THRESHOLD |
                (uint)FileSystemControlFlags_Values.FILE_VC_QUOTA_ENFORCE |
                (uint)FileSystemControlFlags_Values.FILE_VC_QUOTA_TRACK |
                (uint)FileSystemControlFlags_Values.FILE_VC_QUOTAS_INCOMPLETE |
                (uint)FileSystemControlFlags_Values.FILE_VC_QUOTAS_REBUILDING;

            const uint bitUnUsed_r1739 = ~bitUsed_r1739;

            Site.CaptureRequirementIfAreEqual<uint>(
                0x00000000,
                bitUnUsed_r1739 & (uint)fileFsControlInformation.FileSystemControlFlags,
                1739,
                @"[In FILE_FS_CONTROL_INFORMATION]FileSystemControlFlags (4 bytes):  Bits not defined in the
                following table[FILE_VC_CONTENT_INDEX_DISABLED 0x00000008, FILE_VC_LOG_QUOTA_LIMIT 0x00000020,
                FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010, FILE_VC_LOG_VOLUME_LIMIT 0x00000080,
                FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040, FILE_VC_QUOTA_ENFORCE 0x00000002, FILE_VC_QUOTA_TRACK
                0x00000001, FILE_VC_QUOTAS_INCOMPLETE 0x00000100, FILE_VC_QUOTAS_REBUILDING 0x00000200] MUST be
                ignored.<83><84>");

            Site.DefaultProtocolDocShortName = Site.Properties["ProtocolShortName"];
        }