diff options
| author | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
|---|---|---|
| committer | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
| commit | 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch) | |
| tree | ad5f3ede5cbcd6b598677ce41bcf8318471bdd92 /filesys/cdfs | |
| parent | 687b274aa38fd05c8c26e3068932121876d7f745 (diff) | |
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'filesys/cdfs')
| -rw-r--r-- | filesys/cdfs/cdfs.sln | 18 | ||||
| -rw-r--r-- | filesys/cdfs/cdfs.vcxproj | 4 | ||||
| -rw-r--r-- | filesys/cdfs/cdfs.vcxproj.Filters | 8 | ||||
| -rw-r--r-- | filesys/cdfs/cdstruc.h | 13 | ||||
| -rw-r--r-- | filesys/cdfs/fsctrl.c | 17 |
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 |
