private void AlternateDataStream_Query_FileAccessInformation(FileType fileType) { //Prerequisites: Create streams on a newly created file //Step 1: Query FILE_ACCESS_INFORMATION long byteCount; byte[] outputBuffer; FILE_ACCESS_INFORMATION fileAccessInfo = new FILE_ACCESS_INFORMATION(); uint outputBufferSize = (uint)TypeMarshal.ToBytes<FILE_ACCESS_INFORMATION>(fileAccessInfo).Length; BaseTestSite.Log.Add(LogEntryKind.TestStep, "{0}. QueryFileInformation with FileInfoClass.FILE_ACCESS_INFORMATION", ++testStep); status = this.fsaAdapter.QueryFileInformation(FileInfoClass.FILE_ACCESS_INFORMATION, outputBufferSize, out byteCount, out outputBuffer); this.fsaAdapter.AssertIfNotSuccess(status, "QueryFileInformation with FileInfoClass.FILE_ACCESS_INFORMATION operation failed."); // Step 2: Verify FILE_ACCESS_INFORMATION fileAccessInfo = TypeMarshal.ToStruct<FILE_ACCESS_INFORMATION>(outputBuffer); BaseTestSite.Log.Add(LogEntryKind.TestStep, "{0}. Verify outputBuffer.AccessFlags", ++testStep); BaseTestSite.Assert.IsNotNull(fileAccessInfo, "The outputBuffer.AccessFlags MUST be set to Open.GrantedAccess."); }
/// <summary> /// Verify the data type FILE_ACCESS_INFORMATION /// </summary> /// <param name="fileAccessInformation"> FILE_ACCESS_INFORMATION type data </param> public void VerifyDataTypeFileAccessInformation( FILE_ACCESS_INFORMATION fileAccessInformation) { Site.DefaultProtocolDocShortName = "MS-FSCC"; // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "MS-FSCC_R976,AccessFlags is {0}", fileAccessInformation.AccessFlags); // // Verify requirement 976 // Site.CaptureRequirementIfAreEqual<int>( 4 , Marshal.SizeOf(fileAccessInformation.AccessFlags), 976, @"[In FILE_ACCESS_INFORMATION]AccessFlags (4 bytes): A DWORD that MUST contain values specified in ACCESS_MASK of [MS-DTYP]."); // As the FILE_ACCESS_INFORMATION only contains the AccessFlags elements // And the AccessFlags is verified above, this rs can be captured directly Site.CaptureRequirement( 975, @"The FILE_ACCESS_INFORMATION data element is as follows:[AccessFlags]."); // // Add the debug information // Site.Log.Add(LogEntryKind.Debug, "Verify MS-FSCC_R982"); Site.CaptureRequirementIfAreEqual<Type>( typeof(FILE_ACCESS_INFORMATION), fileAccessInformation.GetType(), 982, @"[In FileAllInformation]AccessInformation (4 bytes): A FILE_ACCESS_INFORMATION structure specified in section 2.4.1."); Site.DefaultProtocolDocShortName = Site.Properties["ProtocolShortName"]; }