/// <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"]; }