protected void SetSecurityDescriptor(string sharePath, string fileName, _SECURITY_DESCRIPTOR sd, SET_INFO_Request_AdditionalInformation_Values securityAttributesToApply) { Smb2FunctionalClient clientAdmin; clientAdmin = new Smb2FunctionalClient(TestConfig.Timeout, TestConfig, BaseTestSite); clientAdmin.ConnectToServer(TestConfig.UnderlyingTransport, TestConfig.SutComputerName, TestConfig.SutIPAddress); uint treeId; ConnectToShare(clientAdmin, TestConfig.AccountCredential, sharePath, out treeId); FILEID fileId; Smb2CreateContextResponse[] createContextResponses; clientAdmin.Create(treeId, fileName, fileName == null ? CreateOptions_Values.FILE_DIRECTORY_FILE : CreateOptions_Values.FILE_NON_DIRECTORY_FILE, out fileId, out createContextResponses, accessMask: AccessMask.READ_CONTROL | AccessMask.WRITE_DAC | AccessMask.FILE_READ_ATTRIBUTES | AccessMask.WRITE_OWNER | AccessMask.ACCESS_SYSTEM_SECURITY, shareAccess: ShareAccess_Values.FILE_SHARE_DELETE | ShareAccess_Values.FILE_SHARE_READ | ShareAccess_Values.FILE_SHARE_WRITE, createDisposition: CreateDisposition_Values.FILE_OPEN); clientAdmin.SetSecurityDescriptor(treeId, fileId, securityAttributesToApply, sd); clientAdmin.Close(treeId, fileId); clientAdmin.TreeDisconnect(treeId); clientAdmin.Disconnect(); }