summaryrefslogtreecommitdiff
path: root/filesys/cdfs
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /filesys/cdfs
parent687b274aa38fd05c8c26e3068932121876d7f745 (diff)
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'filesys/cdfs')
-rw-r--r--filesys/cdfs/cdfs.sln18
-rw-r--r--filesys/cdfs/cdfs.vcxproj4
-rw-r--r--filesys/cdfs/cdfs.vcxproj.Filters8
-rw-r--r--filesys/cdfs/cdstruc.h13
-rw-r--r--filesys/cdfs/fsctrl.c17
5 files changed, 42 insertions, 18 deletions
diff --git a/filesys/cdfs/cdfs.sln b/filesys/cdfs/cdfs.sln
index c14b4278..518cfdfa 100644
--- a/filesys/cdfs/cdfs.sln
+++ b/filesys/cdfs/cdfs.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0
MinimumVisualStudioVersion = 12.0
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdfs", "cdfs.vcxproj", "{062AB514-86CC-49DA-9F51-EA88D2B4E71F}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cdfs", "cdfs.vcxproj", "{5BA27054-1164-45A2-AC23-F620D9AA3E1F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -13,14 +13,14 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Debug|Win32.ActiveCfg = Debug|Win32
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Debug|Win32.Build.0 = Debug|Win32
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Release|Win32.ActiveCfg = Release|Win32
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Release|Win32.Build.0 = Release|Win32
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Debug|x64.ActiveCfg = Debug|x64
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Debug|x64.Build.0 = Debug|x64
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Release|x64.ActiveCfg = Release|x64
- {062AB514-86CC-49DA-9F51-EA88D2B4E71F}.Release|x64.Build.0 = Release|x64
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Debug|Win32.Build.0 = Debug|Win32
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Release|Win32.ActiveCfg = Release|Win32
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Release|Win32.Build.0 = Release|Win32
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Debug|x64.ActiveCfg = Debug|x64
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Debug|x64.Build.0 = Debug|x64
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Release|x64.ActiveCfg = Release|x64
+ {5BA27054-1164-45A2-AC23-F620D9AA3E1F}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/filesys/cdfs/cdfs.vcxproj b/filesys/cdfs/cdfs.vcxproj
index 8c51053d..fd976b4c 100644
--- a/filesys/cdfs/cdfs.vcxproj
+++ b/filesys/cdfs/cdfs.vcxproj
@@ -19,12 +19,12 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
- <ProjectGuid>{062AB514-86CC-49DA-9F51-EA88D2B4E71F}</ProjectGuid>
+ <ProjectGuid>{5BA27054-1164-45A2-AC23-F620D9AA3E1F}</ProjectGuid>
<RootNamespace>$(MSBuildProjectName)</RootNamespace>
<SupportsPackaging>false</SupportsPackaging>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{0D9B1F6C-C6A5-4688-9A62-159AA562676F}</SampleGuid>
+ <SampleGuid>{4BD9A0E3-C5F8-482B-B98F-DE6915538B47}</SampleGuid>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
diff --git a/filesys/cdfs/cdfs.vcxproj.Filters b/filesys/cdfs/cdfs.vcxproj.Filters
index 6eb4daa0..82f14f8b 100644
--- a/filesys/cdfs/cdfs.vcxproj.Filters
+++ b/filesys/cdfs/cdfs.vcxproj.Filters
@@ -3,19 +3,19 @@
<ItemGroup>
<Filter Include="Source Files">
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{A2172E28-97CB-41ED-AC7C-C2AD8DA0F52A}</UniqueIdentifier>
+ <UniqueIdentifier>{E51B93D7-C683-422C-B38A-0B7F50602595}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{4F6688C5-2155-4638-B834-D253854A676C}</UniqueIdentifier>
+ <UniqueIdentifier>{FFB58771-53DF-4696-B053-D270F56AA8E2}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files">
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{B5EE8D2A-8B5F-4206-B3DF-3E8452D2ECE0}</UniqueIdentifier>
+ <UniqueIdentifier>{35F24D30-AEF3-4B88-8373-E67A8A11190C}</UniqueIdentifier>
</Filter>
<Filter Include="Driver Files">
<Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{C487DB37-0DF6-4916-B8C5-B6179219926C}</UniqueIdentifier>
+ <UniqueIdentifier>{7FFD3196-DA97-4ADC-ACEF-9D5F2BF64BC4}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
diff --git a/filesys/cdfs/cdstruc.h b/filesys/cdfs/cdstruc.h
index 2a356e76..72abe0a1 100644
--- a/filesys/cdfs/cdstruc.h
+++ b/filesys/cdfs/cdstruc.h
@@ -681,7 +681,18 @@ typedef struct _VCB {
PIRP SectorCacheIrp;
KEVENT SectorCacheEvent;
ERESOURCE SectorCacheResource;
-
+
+#ifdef CDFS_TELEMETRY_DATA
+
+ //
+ // An ID that is common across the volume stack used to correlate volume events and for telemetry purposes.
+ // It may have a different value than the VolumeGuid.
+ //
+
+ GUID VolumeCorrelationId;
+
+#endif // CDFS_TELEMETRY_DATA
+
#if DBG
ULONG SecCacheHits;
ULONG SecCacheMisses;
diff --git a/filesys/cdfs/fsctrl.c b/filesys/cdfs/fsctrl.c
index 8ff03dbd..8a113f04 100644
--- a/filesys/cdfs/fsctrl.c
+++ b/filesys/cdfs/fsctrl.c
@@ -641,6 +641,7 @@ Return Value:
#ifdef CDFS_TELEMETRY_DATA
GUID VolumeGuid;
+ GUID VolumeCorrelationId = { 0 };
#endif
PAGED_CODE();
@@ -898,6 +899,19 @@ Return Value:
RtlCopyMemory( &CdTelemetryData.VolumeGuid, &VolumeGuid, sizeof(GUID) );
}
+ //
+ // Initialize the correlation ID.
+ //
+
+ if (NT_SUCCESS( FsRtlVolumeDeviceToCorrelationId( Vcb->TargetDeviceObject, &VolumeCorrelationId ) )) {
+
+ //
+ // Stash a copy away in the VCB.
+ //
+
+ RtlCopyMemory( &Vcb->VolumeCorrelationId, &VolumeCorrelationId, sizeof( GUID ) );
+ }
+
#endif // CDFS_TELEMETRY_DATA
// Lock object is acquired and released using internal state
@@ -1229,8 +1243,7 @@ Return Value:
// Send Telemetry
//
- RtlCopyMemory( &VolumeGuid, &CdTelemetryData.VolumeGuid, sizeof(GUID) );
- CdTelemetryMountSafe(&VolumeGuid, STATUS_SUCCESS, Vcb);
+ CdTelemetryMountSafe( &VolumeCorrelationId, STATUS_SUCCESS, Vcb );
#endif