Skip to content

Commit cb0858f

Browse files
authored
Merge pull request #9615 from dfederm/file-access-data-id
Add FileAccessData Id and CorrelationId
2 parents c67ce32 + 019f0f7 commit cb0858f

File tree

4 files changed

+64
-4
lines changed

4 files changed

+64
-4
lines changed

src/Build.UnitTests/BackEnd/TaskHostTaskComplete_Tests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ public void TestConstructors()
3232
new FileAccessData(
3333
ReportedFileOperation.CreateFile,
3434
RequestedAccess.Read,
35-
0,
36-
0,
35+
processId: 123,
36+
id: 1,
37+
correlationId: 0,
38+
error: 0,
3739
DesiredAccess.GENERIC_READ,
3840
FlagsAndAttributes.FILE_ATTRIBUTE_NORMAL,
3941
"foo",

src/Build/BackEnd/Components/Communications/DetouredNodeLauncher.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ public override void HandleFileAccess(FileAccessData fileAccessData) => _fileAcc
173173
(Experimental.FileAccess.ReportedFileOperation)fileAccessData.Operation,
174174
(Experimental.FileAccess.RequestedAccess)fileAccessData.RequestedAccess,
175175
fileAccessData.ProcessId,
176+
fileAccessData.Id,
177+
fileAccessData.CorrelationId,
176178
fileAccessData.Error,
177179
(Experimental.FileAccess.DesiredAccess)fileAccessData.DesiredAccess,
178180
(Experimental.FileAccess.FlagsAndAttributes)fileAccessData.FlagsAndAttributes,
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
3+
<Suppressions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4+
<!-- Changes to the Experimental namespace are considered non-breaking, and this ctor should be used only internally, not by plugin code. -->
5+
<Suppression>
6+
<DiagnosticId>CP0002</DiagnosticId>
7+
<Target>M:Microsoft.Build.Experimental.FileAccess.FileAccessData.#ctor(Microsoft.Build.Experimental.FileAccess.ReportedFileOperation,Microsoft.Build.Experimental.FileAccess.RequestedAccess,System.UInt32,System.UInt32,Microsoft.Build.Experimental.FileAccess.DesiredAccess,Microsoft.Build.Experimental.FileAccess.FlagsAndAttributes,System.String,System.String,System.Boolean)</Target>
8+
<Left>lib/net472/Microsoft.Build.dll</Left>
9+
<Right>lib/net472/Microsoft.Build.dll</Right>
10+
<IsBaselineSuppression>true</IsBaselineSuppression>
11+
</Suppression>
12+
<Suppression>
13+
<DiagnosticId>CP0002</DiagnosticId>
14+
<Target>M:Microsoft.Build.Experimental.FileAccess.FileAccessData.#ctor(Microsoft.Build.Experimental.FileAccess.ReportedFileOperation,Microsoft.Build.Experimental.FileAccess.RequestedAccess,System.UInt32,System.UInt32,Microsoft.Build.Experimental.FileAccess.DesiredAccess,Microsoft.Build.Experimental.FileAccess.FlagsAndAttributes,System.String,System.String,System.Boolean)</Target>
15+
<Left>lib/net8.0/Microsoft.Build.dll</Left>
16+
<Right>lib/net8.0/Microsoft.Build.dll</Right>
17+
<IsBaselineSuppression>true</IsBaselineSuppression>
18+
</Suppression>
19+
<Suppression>
20+
<DiagnosticId>CP0002</DiagnosticId>
21+
<Target>M:Microsoft.Build.Experimental.FileAccess.FileAccessData.#ctor(Microsoft.Build.Experimental.FileAccess.ReportedFileOperation,Microsoft.Build.Experimental.FileAccess.RequestedAccess,System.UInt32,System.UInt32,Microsoft.Build.Experimental.FileAccess.DesiredAccess,Microsoft.Build.Experimental.FileAccess.FlagsAndAttributes,System.String,System.String,System.Boolean)</Target>
22+
<Left>ref/net472/Microsoft.Build.dll</Left>
23+
<Right>ref/net472/Microsoft.Build.dll</Right>
24+
<IsBaselineSuppression>true</IsBaselineSuppression>
25+
</Suppression>
26+
<Suppression>
27+
<DiagnosticId>CP0002</DiagnosticId>
28+
<Target>M:Microsoft.Build.Experimental.FileAccess.FileAccessData.#ctor(Microsoft.Build.Experimental.FileAccess.ReportedFileOperation,Microsoft.Build.Experimental.FileAccess.RequestedAccess,System.UInt32,System.UInt32,Microsoft.Build.Experimental.FileAccess.DesiredAccess,Microsoft.Build.Experimental.FileAccess.FlagsAndAttributes,System.String,System.String,System.Boolean)</Target>
29+
<Left>ref/net8.0/Microsoft.Build.dll</Left>
30+
<Right>ref/net8.0/Microsoft.Build.dll</Right>
31+
<IsBaselineSuppression>true</IsBaselineSuppression>
32+
</Suppression>
33+
</Suppressions>

src/Build/FileAccess/FileAccessData.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System;
5-
65
using Microsoft.Build.BackEnd;
76

87
namespace Microsoft.Build.Experimental.FileAccess
@@ -17,6 +16,8 @@ public struct FileAccessData
1716
private ReportedFileOperation _operation;
1817
private RequestedAccess _requestedAccess;
1918
private uint _processId;
19+
private uint _id;
20+
private uint _correlationId;
2021
private uint _error;
2122
private DesiredAccess _desiredAccess;
2223
private FlagsAndAttributes _flagsAndAttributes;
@@ -28,6 +29,8 @@ public FileAccessData(
2829
ReportedFileOperation operation,
2930
RequestedAccess requestedAccess,
3031
uint processId,
32+
uint id,
33+
uint correlationId,
3134
uint error,
3235
DesiredAccess desiredAccess,
3336
FlagsAndAttributes flagsAndAttributes,
@@ -38,6 +41,8 @@ public FileAccessData(
3841
_operation = operation;
3942
_requestedAccess = requestedAccess;
4043
_processId = processId;
44+
_id = id;
45+
_correlationId = correlationId;
4146
_error = error;
4247
_desiredAccess = desiredAccess;
4348
_flagsAndAttributes = flagsAndAttributes;
@@ -56,7 +61,7 @@ public ReportedFileOperation Operation
5661
/// <summary>The requested access.</summary>
5762
public RequestedAccess RequestedAccess
5863
{
59-
get => _requestedAccess;
64+
readonly get => _requestedAccess;
6065
private set => _requestedAccess = value;
6166
}
6267

@@ -67,6 +72,22 @@ public uint ProcessId
6772
private set => _processId = value;
6873
}
6974

75+
/// <summary>Id of file access.</summary>
76+
public uint Id
77+
{
78+
readonly get => _id;
79+
private set => _id = value;
80+
}
81+
82+
83+
/// <summary>Correlation id of file access.</summary>
84+
public uint CorrelationId
85+
{
86+
readonly get => _correlationId;
87+
private set => _correlationId = value;
88+
}
89+
90+
7091
/// <summary>The error code of the operation.</summary>
7192
public uint Error
7293
{
@@ -114,6 +135,8 @@ void ITranslatable.Translate(ITranslator translator)
114135
translator.TranslateEnum(ref _operation, (int)_operation);
115136
translator.TranslateEnum(ref _requestedAccess, (int)_requestedAccess);
116137
translator.Translate(ref _processId);
138+
translator.Translate(ref _id);
139+
translator.Translate(ref _correlationId);
117140
translator.Translate(ref _error);
118141
translator.TranslateEnum(ref _desiredAccess, (int)_desiredAccess);
119142
translator.TranslateEnum(ref _flagsAndAttributes, (int)_flagsAndAttributes);

0 commit comments

Comments
 (0)