# pre.dll-post.dll Diff

# TOC

* [Visual Chart Diff](#visual-chart-diff)
* [Metadata](#metadata)
	* [Ghidra Diff Engine](#ghidra-diff-engine)
		* [Command Line](#command-line)
	* [Binary Metadata Diff](#binary-metadata-diff)
	* [Program Options](#program-options)
	* [Diff Stats](#diff-stats)
	* [Strings](#strings)
* [Deleted](#deleted)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_perfimptestgetcachedfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_standalone_25_03_nonsecgetcachedfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_perfimptestgetcurrentfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_standalone_25_03_nonsecgetcurrentfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_perfimptestreportusage)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_standalone_25_03_nonsecreportusage)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_testlabval__private_isenabled)
* [Added](#added)
	* [wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges](#wildetailsenabledstatemanagersubscribefeaturestatecachetoconfigurationchanges)
	* [wil::details::SubscribeFeatureStateCacheToConfigurationChanges](#wildetailssubscribefeaturestatecachetoconfigurationchanges)
	* [Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline](#feature_kernelpnp_propertyvalidation__private_isenableddeviceusagenoinline)
	* [wil_details_FeatureReporting_ReportUsageToService](#wil_details_featurereporting_reportusagetoservice)
	* [wil_details_FeatureReporting_ReportUsageToServiceDirect](#wil_details_featurereporting_reportusagetoservicedirect)
	* [wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState](#wil_details_featurestatecache_reevaluatecachedfeatureenabledstate)
	* [wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath](#wil_details_featurestatecache_tryenabledeviceusagefastpath)
	* [wil_details_GetCurrentFeatureEnabledState](#wil_details_getcurrentfeatureenabledstate)
	* [wil_details_IsEnabledFallback](#wil_details_isenabledfallback)
* [Modified](#modified)
	* [wil::details::ReportUsageToServiceDirect](#wildetailsreportusagetoservicedirect)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_uxlabtestgetcurrentfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_testgateimpgetcurrentfeatureenabledstate)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_testlabvalgetcurrentfeatureenabledstate)
	* [wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''](#wildetailsdynamic_initializer_for_g_header_init_initializestagingheaderinternalapi)
	* [wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage](#wildetailsfeatureimplstruct___wilfeaturetraits_feature_testlabvalreportusage)
	* [wil_details_FeatureReporting_RecordUsageInCache](#wil_details_featurereporting_recordusageincache)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree](#api-ms-win-core-heap-l2-1-0dlllocalfree)
	* [~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>](#unique_storagestruct_wildetailsresource_policystruct__rtl_srwlock___ptr64void___cdeclstruct__rtl_srwlock___ptr64void___cdecl_releasesrwlockexclusivestruct__rtl_srwlock___ptr64struct_wistdintegral_constantunsigned___int641struct__rtl_srwlock___ptr64struct__rtl_srwlock___ptr640stdnullptr_t_)
	* [WilApi_GetFeatureEnabledState](#wilapi_getfeatureenabledstate)
	* [ReportUsageToService](#reportusagetoservice)
	* [push_back](#push_back)
	* [API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW](#api-ms-win-security-sddl-l1-1-0dllconvertstringsecuritydescriptortosecuritydescriptorw)
	* [wil_RtlStagingConfig_RecordFeatureUsage](#wil_rtlstagingconfig_recordfeatureusage)
	* [__GSHandlerCheck](#__gshandlercheck)
	* [wil_RtlStagingConfig_QueryFeatureState](#wil_rtlstagingconfig_queryfeaturestate)
	* [API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive](#api-ms-win-core-synch-l1-1-0dllacquiresrwlockexclusive)
	* [wil_details_MapReportingKind](#wil_details_mapreportingkind)
	* [__security_check_cookie](#__security_check_cookie)
	* [_PnpValidatePropertyData](#_pnpvalidatepropertydata)

# Visual Chart Diff



```mermaid

flowchart LR

wildetailsReportUsageToServiceDirect-8-old<--Match 99%-->wildetailsReportUsageToServiceDirect-8-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxLabTestGetCurrentFeatureEnabledState-2-old<--Match 95%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxLabTestGetCurrentFeatureEnabledState-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestGateImpGetCurrentFeatureEnabledState-2-old<--Match 88%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestGateImpGetCurrentFeatureEnabledState-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValGetCurrentFeatureEnabledState-2-old<--Match 65%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValGetCurrentFeatureEnabledState-2-new
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-old<--Match 85%-->wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValReportUsage-4-old<--Match 94%-->wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValReportUsage-4-new
wil_details_FeatureReporting_RecordUsageInCache-3-old<--Match 98%-->wil_details_FeatureReporting_RecordUsageInCache-3-new

subgraph post.dll
    wildetailsReportUsageToServiceDirect-8-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxLabTestGetCurrentFeatureEnabledState-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestGateImpGetCurrentFeatureEnabledState-2-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValGetCurrentFeatureEnabledState-2-new
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-new
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValReportUsage-4-new
wil_details_FeatureReporting_RecordUsageInCache-3-new
    subgraph Added
direction LR
wil-details-EnabledStateManager-SubscribeFeatureStateCacheToConfigurationChanges
    wil-details-SubscribeFeatureStateCacheToConfigurationChanges
    Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline
    wil_details_FeatureReporting_ReportUsageToService
    wil_details_FeatureReporting_ReportUsageToServiceDirect
    wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
    wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath
    wil_details_GetCurrentFeatureEnabledState
    wil_details_IsEnabledFallback
end
end

subgraph pre.dll
    wildetailsReportUsageToServiceDirect-8-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_UxLabTestGetCurrentFeatureEnabledState-2-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestGateImpGetCurrentFeatureEnabledState-2-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValGetCurrentFeatureEnabledState-2-old
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-old
wildetailsFeatureImplstruct___WilFeatureTraits_Feature_TestLabValReportUsage-4-old
wil_details_FeatureReporting_RecordUsageInCache-3-old
    subgraph Deleted
direction LR
wil-details-FeatureImplstruct___WilFeatureTraits_Feature_PerfImpTest-GetCachedFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_Standalone_25_03_NonSec-GetCachedFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_PerfImpTest-GetCurrentFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_Standalone_25_03_NonSec-GetCurrentFeatureEnabledState
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_PerfImpTest-ReportUsage
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_Standalone_25_03_NonSec-ReportUsage
    wil-details-FeatureImplstruct___WilFeatureTraits_Feature_TestLabVal-__private_IsEnabled
end
end

```


```mermaid
pie showData
    title Function Matches - 99.7007%
"unmatched_funcs_len" : 16
"matched_funcs_len" : 5330
```



```mermaid
pie showData
    title Matched Function Similarity - 99.5872%
"matched_funcs_with_code_changes_len" : 7
"matched_funcs_with_non_code_changes_len" : 15
"matched_funcs_no_changes_len" : 5308
```

# Metadata

## Ghidra Diff Engine

### Command Line

#### Captured Command Line


```
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --max-ram-percent 60.0 --max-section-funcs 200 pre.dll post.dll
```


#### Verbose Args


<details>

```
--old ['pre.dll'] --new [['post.dll']] --engine VersionTrackingDiff --output-path out --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim False --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None
```


</details>

#### Download Original PEs


```
wget https://msdl.microsoft.com/download/symbols/das.dll/2AA2515CB6000/das.dll -O das.dll.x64.10.0.26100.5074
wget https://msdl.microsoft.com/download/symbols/das.dll/9E43D3DDB6000/das.dll -O das.dll.x64.10.0.26100.6725
```


## Binary Metadata Diff


```diff
--- pre.dll Meta
+++ post.dll Meta
@@ -1,44 +1,44 @@
-Program Name: pre.dll
+Program Name: post.dll
 Language ID: x86:LE:64:default (4.6)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 180000000
 Maximum Address: ff0000184f
-# of Bytes: 748112
+# of Bytes: 748136
 # of Memory Blocks: 10
-# of Instructions: 129992
-# of Defined Data: 7191
-# of Functions: 2672
-# of Symbols: 23747
+# of Instructions: 130061
+# of Defined Data: 7219
+# of Functions: 2674
+# of Symbols: 23762
 # of Data Types: 1399
 # of Data Type Categories: 71
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.0.4
-Date Created: Thu Aug 27 23:19:42 SGT 2026
+Date Created: Thu Aug 27 23:19:46 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /sessions/fervent-laughing-brahmagupta/das/pre.dll
-Executable MD5: 6ed8966f4dad119185b79330685cf1ef
-Executable SHA256: 03b28d00d03ef4d5bfab345a19308a6ac52901a7d4c6c4af427baa79005e8917
-FSRL: file:///sessions/fervent-laughing-brahmagupta/das/pre.dll?MD5=6ed8966f4dad119185b79330685cf1ef
+Executable Location: /sessions/fervent-laughing-brahmagupta/das/post.dll
+Executable MD5: 04138903cadf198a41fc774dd8be26f5
+Executable SHA256: 38e7db1a2a268cbb8447bf3d44d1c89ded23dc61566d32a0e34a30c844b15614
+FSRL: file:///sessions/fervent-laughing-brahmagupta/das/post.dll?MD5=04138903cadf198a41fc774dd8be26f5
 PDB Age: 1
 PDB File: das.pdb
-PDB GUID: 675f1b01-bf04-b4be-f532-d06d260f27f2
+PDB GUID: c8bff66f-d6a2-a94e-75e3-3ef52fa656e9
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Device Association Service
-PE Property[FileVersion]: 10.0.26100.5074 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.26100.6725 (WinBuild.160101.0800)
 PE Property[InternalName]: das.dll
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: das.dll
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.26100.5074
+PE Property[ProductVersion]: 10.0.26100.6725
 PE Property[Translation]: 4b00409
 Preferred Root Namespace Category: 
 RTTI Found: true
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra pre.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra pre.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra pre.dll Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.Apply Function Calling Conventions|true|
|Demangler Microsoft.Apply Function Signatures|true|
|Demangler Microsoft.C-Style Symbol Interpretation|FUNCTION_IF_EXISTS|
|Demangler Microsoft.Demangle Only Known Mangled Symbols|false|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>


<details>
<summary>Ghidra post.dll Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra post.dll Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra post.dll Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.Apply Function Calling Conventions|true|
|Demangler Microsoft.Apply Function Signatures|true|
|Demangler Microsoft.C-Style Symbol Interpretation|FUNCTION_IF_EXISTS|
|Demangler Microsoft.Demangle Only Known Mangled Symbols|false|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>

## Diff Stats



|Stat|Value|
| :---: | :---: |
|added_funcs_len|9|
|deleted_funcs_len|7|
|modified_funcs_len|22|
|added_symbols_len|12|
|deleted_symbols_len|0|
|diff_time|4.007035732269287|
|deleted_strings_len|0|
|added_strings_len|0|
|match_types|Counter({'SymbolsHash': 2631, 'ExternalsName': 370, 'ExactBytesFunctionHasher': 9, 'SigCallingCalledHasher': 9, 'ExactInstructionsFunctionHasher': 8, 'StructuralGraphHash': 6, 'StringsRefsHasher': 1})|
|items_to_process|50|
|diff_types|Counter({'address': 17, 'refcount': 16, 'calling': 13, 'length': 8, 'code': 7, 'called': 3, 'sig': 1})|
|unmatched_funcs_len|16|
|total_funcs_len|5346|
|matched_funcs_len|5330|
|matched_funcs_with_code_changes_len|7|
|matched_funcs_with_non_code_changes_len|15|
|matched_funcs_no_changes_len|5308|
|match_func_similarity_percent|99.5872%|
|func_match_overall_percent|99.7007%|
|first_matches|Counter({'SymbolsHash': 2631, 'ExactBytesFunctionHasher': 9, 'SigCallingCalledHasher': 9, 'ExactInstructionsFunctionHasher': 8, 'StructuralGraphHash': 6, 'StringsRefsHasher': 1})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 2631
"ExternalsName" : 370
"ExactBytesFunctionHasher" : 9
"ExactInstructionsFunctionHasher" : 8
"SigCallingCalledHasher" : 9
"StringsRefsHasher" : 1
"StructuralGraphHash" : 6
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 2631
"ExactBytesFunctionHasher" : 9
"ExactInstructionsFunctionHasher" : 8
"SigCallingCalledHasher" : 9
"StringsRefsHasher" : 1
"StructuralGraphHash" : 6
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 9
"deleted_funcs_len" : 7
"modified_funcs_len" : 22
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 12
"deleted_symbols_len" : 0
```

## Strings


*No string differences found*

# Deleted

## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|GetCachedFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState|
|refcount|2|
|length|293|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnsureSubscribedToFeatureConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState<br>wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage|
|paramcount|1|
|address|180033da0|
|sig|wil_details_FeatureStateCache __thiscall GetCachedFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState
@@ -1,82 +0,0 @@
-
-/* WARNING: Removing unreachable block (ram,0x000180033df2) */
-/* WARNING: Removing unreachable block (ram,0x000180033df8) */
-/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState(void) __ptr64 */
-
-void __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::
-GetCachedFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> *this)
-
-{
-  uint uVar1;
-  uint uVar2;
-  uint uVar3;
-  FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> *this_00;
-  uint uVar4;
-  uint *in_RDX;
-  bool bVar5;
-  uint local_res10 [2];
-  undefined *local_res18 [2];
-  undefined4 local_38;
-  undefined4 local_34;
-  FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> *local_30;
-  
-  in_RDX[0] = 0;
-  in_RDX[1] = 0;
-  uVar3 = *(uint *)this;
-  *in_RDX = uVar3;
-  if (((byte)uVar3 & 6) == 6) {
-    return;
-  }
-  this_00 = this;
-  uVar2 = EnsureSubscribedToFeatureConfigurationChanges();
-  GetCurrentFeatureEnabledState(this_00,(int *)local_res10);
-  uVar3 = *in_RDX;
-  do {
-    uVar1 = uVar3;
-    *in_RDX = uVar1;
-    uVar4 = uVar1;
-    if ((uVar1 & 4) == 0) {
-      uVar4 = uVar1 & 0xfffffbff | local_res10[0] & 0x400 | 4;
-      *in_RDX = uVar4;
-    }
-    LOCK();
-    uVar3 = *(uint *)this;
-    bVar5 = uVar1 == uVar3;
-    if (bVar5) {
-      *(uint *)this = uVar4;
-      uVar3 = uVar1;
-    }
-    UNLOCK();
-  } while (!bVar5);
-  if (((uVar1 & 4) != 0) ||
-     (g_enabledStateManager == (shutdown_aware_object<class_wil::details::EnabledStateManager>)0x0))
-  goto LAB_180033e9e;
-  AcquireSRWLockExclusive((PSRWLOCK)&DAT_1800a8260);
-  local_res18[0] = &DAT_1800a8260;
-  if ((uVar2 == 0) || (uVar2 != DAT_1800a8274)) {
-LAB_180033e91:
-    LOCK();
-    *(uint *)this = *(uint *)this & 0xfffffffb;
-    UNLOCK();
-  }
-  else {
-    local_34 = 0;
-    local_38 = 3;
-    local_30 = this;
-    bVar5 = details_abi::heap_buffer::push_back((heap_buffer *)&DAT_1800a82a8,&local_38,0x10);
-    if (!bVar5) goto LAB_180033e91;
-  }
-  unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-  ::
-  ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-            ((unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-              *)local_res18);
-LAB_180033e9e:
-  if ((*in_RDX & 2) == 0) {
-    *in_RDX = *in_RDX & 0xfffff63e | local_res10[0] & 0x9c1;
-  }
-  return;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|GetCachedFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState|
|refcount|2|
|length|293|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnsureSubscribedToFeatureConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage|
|paramcount|1|
|address|180033ecc|
|sig|wil_details_FeatureStateCache __thiscall GetCachedFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState
@@ -1,84 +0,0 @@
-
-/* WARNING: Removing unreachable block (ram,0x000180033f1e) */
-/* WARNING: Removing unreachable block (ram,0x000180033f24) */
-/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState(void) __ptr64
-    */
-
-void __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::
-GetCachedFeatureEnabledState
-          (FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> *this)
-
-{
-  uint uVar1;
-  uint uVar2;
-  uint uVar3;
-  FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> *this_00;
-  uint uVar4;
-  uint *in_RDX;
-  bool bVar5;
-  uint local_res10 [2];
-  undefined *local_res18 [2];
-  undefined4 local_38;
-  undefined4 local_34;
-  FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> *local_30;
-  
-  in_RDX[0] = 0;
-  in_RDX[1] = 0;
-  uVar3 = *(uint *)this;
-  *in_RDX = uVar3;
-  if (((byte)uVar3 & 6) == 6) {
-    return;
-  }
-  this_00 = this;
-  uVar2 = EnsureSubscribedToFeatureConfigurationChanges();
-  GetCurrentFeatureEnabledState(this_00,(int *)local_res10);
-  uVar3 = *in_RDX;
-  do {
-    uVar1 = uVar3;
-    *in_RDX = uVar1;
-    uVar4 = uVar1;
-    if ((uVar1 & 4) == 0) {
-      uVar4 = uVar1 & 0xfffffbff | local_res10[0] & 0x400 | 4;
-      *in_RDX = uVar4;
-    }
-    LOCK();
-    uVar3 = *(uint *)this;
-    bVar5 = uVar1 == uVar3;
-    if (bVar5) {
-      *(uint *)this = uVar4;
-      uVar3 = uVar1;
-    }
-    UNLOCK();
-  } while (!bVar5);
-  if (((uVar1 & 4) != 0) ||
-     (g_enabledStateManager == (shutdown_aware_object<class_wil::details::EnabledStateManager>)0x0))
-  goto LAB_180033fca;
-  AcquireSRWLockExclusive((PSRWLOCK)&DAT_1800a8260);
-  local_res18[0] = &DAT_1800a8260;
-  if ((uVar2 == 0) || (uVar2 != DAT_1800a8274)) {
-LAB_180033fbd:
-    LOCK();
-    *(uint *)this = *(uint *)this & 0xfffffffb;
-    UNLOCK();
-  }
-  else {
-    local_34 = 0;
-    local_38 = 3;
-    local_30 = this;
-    bVar5 = details_abi::heap_buffer::push_back((heap_buffer *)&DAT_1800a82a8,&local_38,0x10);
-    if (!bVar5) goto LAB_180033fbd;
-  }
-  unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-  ::
-  ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-            ((unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
-              *)local_res18);
-LAB_180033fca:
-  if ((*in_RDX & 2) == 0) {
-    *in_RDX = *in_RDX & 0xfffff63e | local_res10[0] & 0x9c1;
-  }
-  return;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState|
|refcount|2|
|length|122|
|called|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState|
|paramcount|2|
|address|18003446c|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> * this, int * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState
@@ -1,29 +0,0 @@
-
-/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
-
-int * __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::
-GetCurrentFeatureEnabledState
-          (FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> *this,int *param_1)
-
-{
-  FEATURE_ENABLED_STATE FVar1;
-  uint uVar2;
-  int *in_R8;
-  uint uVar3;
-  
-  FVar1 = WilApi_GetFeatureEnabledState(0x33b9b11,(FEATURE_CHANGE_TIME)param_1,in_R8);
-  param_1[0] = 0;
-  param_1[1] = 0;
-  uVar2 = -(uint)((FVar1 & 0x40) != 0) & 0x800 | -(uint)((FVar1 & 0x80) != 0) & 0x400 |
-          (FVar1 & 3) << 7;
-  *param_1 = uVar2;
-  uVar3 = 0x40;
-  if (((FVar1 & 0xffffff3f) != 0) && (uVar3 = 0, (FVar1 & 0xffffff3f) == 2)) {
-    uVar3 = 0x40;
-  }
-  *param_1 = uVar2 | uVar3 | 1;
-  return param_1;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState|
|refcount|2|
|length|122|
|called|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState|
|paramcount|2|
|address|1800344f0|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> * this, int * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState
@@ -1,31 +0,0 @@
-
-/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState(int * __ptr64)
-   __ptr64 */
-
-int * __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::
-GetCurrentFeatureEnabledState
-          (FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> *this,int *param_1
-          )
-
-{
-  FEATURE_ENABLED_STATE FVar1;
-  uint uVar2;
-  int *in_R8;
-  uint uVar3;
-  
-  FVar1 = WilApi_GetFeatureEnabledState(0x2af34e6,(FEATURE_CHANGE_TIME)param_1,in_R8);
-  param_1[0] = 0;
-  param_1[1] = 0;
-  uVar2 = -(uint)((FVar1 & 0x40) != 0) & 0x800 | -(uint)((FVar1 & 0x80) != 0) & 0x400 |
-          (FVar1 & 3) << 7;
-  *param_1 = uVar2;
-  uVar3 = 0x40;
-  if (((FVar1 & 0xffffff3f) != 0) && (uVar3 = 0, (FVar1 & 0xffffff3f) == 2)) {
-    uVar3 = 0x40;
-  }
-  *param_1 = uVar2 | uVar3 | 1;
-  return param_1;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|ReportUsage|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage|
|refcount|2|
|length|117|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState|
|paramcount|4|
|address|180034a6c|
|sig|void __thiscall ReportUsage(FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
@@ -1,33 +0,0 @@
-
-/* public: void __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_PerfImpTest>::ReportUsage(bool,enum wil::ReportingKind,unsigned
-   __int64) __ptr64 */
-
-void __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
-          (FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest> *this,bool param_1,
-          ReportingKind param_2,__uint64 param_3)
-
-{
-  __uint64 *p_Var1;
-  uint uVar2;
-  undefined4 local_res8;
-  undefined2 local_resc;
-  __uint64 local_res20;
-  __uint64 in_stack_ffffffffffffffe0;
-  
-  uVar2 = *(uint *)this;
-  local_res20 = param_3;
-  if ((uVar2 & 4) == 0) {
-    p_Var1 = (__uint64 *)GetCachedFeatureEnabledState(this);
-    local_res20 = *p_Var1;
-    uVar2 = (uint)local_res20;
-  }
-  local_resc = 3;
-  local_res8 = 0;
-  ReportUsageToService
-            ((wil_details_FeatureReportingCache *)(this + 8),0x33b9b11,uVar2 >> 10 & 1,
-             uVar2 >> 0xb & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,1,0,in_stack_ffffffffffffffe0);
-  return;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|ReportUsage|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage|
|refcount|2|
|length|117|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState|
|paramcount|4|
|address|180034ae8|
|sig|void __thiscall ReportUsage(FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
@@ -1,33 +0,0 @@
-
-/* public: void __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage(bool,enum
-   wil::ReportingKind,unsigned __int64) __ptr64 */
-
-void __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
-          (FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec> *this,bool param_1
-          ,ReportingKind param_2,__uint64 param_3)
-
-{
-  __uint64 *p_Var1;
-  uint uVar2;
-  undefined4 local_res8;
-  undefined2 local_resc;
-  __uint64 local_res20;
-  __uint64 in_stack_ffffffffffffffe0;
-  
-  uVar2 = *(uint *)this;
-  local_res20 = param_3;
-  if ((uVar2 & 4) == 0) {
-    p_Var1 = (__uint64 *)GetCachedFeatureEnabledState(this);
-    local_res20 = *p_Var1;
-    uVar2 = (uint)local_res20;
-  }
-  local_resc = 3;
-  local_res8 = 0;
-  ReportUsageToService
-            ((wil_details_FeatureReportingCache *)(this + 8),0x2af34e6,uVar2 >> 10 & 1,
-             uVar2 >> 0xb & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,1,0,in_stack_ffffffffffffffe0);
-  return;
-}
-

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled

### Function Meta



|Key|pre.dll|
| :---: | :---: |
|name|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled|
|refcount|2|
|length|53|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState|
|paramcount|2|
|address|1800350a8|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> * this, ReportingKind param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
@@ -1,18 +0,0 @@
-
-/* public: bool __cdecl wil::details::FeatureImpl<struct
-   __WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled(enum wil::ReportingKind) __ptr64 */
-
-bool __thiscall
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
-          (FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> *this,ReportingKind param_1)
-
-{
-  ReportingKind in_R8D;
-  __uint64 in_R9;
-  undefined1 local_res18;
-  
-  GetCachedFeatureEnabledState(this);
-  ReportUsage(this,(bool)(local_res18 & 1),in_R8D,in_R9);
-  return (bool)(local_res18 & 1);
-}
-

```


# Added

## wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|SubscribeFeatureStateCacheToConfigurationChanges|
|fullname|wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges|
|refcount|2|
|length|156|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::SubscribeFeatureStateCacheToConfigurationChanges|
|paramcount|4|
|address|18002f3e8|
|sig|void __thiscall SubscribeFeatureStateCacheToConfigurationChanges(EnabledStateManager * this, wil_details_FeatureStateCache * param_1, wil_FeatureChangeTime param_2, uint param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+++ wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
@@ -0,0 +1,42 @@
+
+/* public: void __cdecl
+   wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges(union
+   wil_details_FeatureStateCache * __ptr64,enum wil_FeatureChangeTime,unsigned int) __ptr64 */
+
+void __thiscall
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+          (EnabledStateManager *this,wil_details_FeatureStateCache *param_1,
+          wil_FeatureChangeTime param_2,uint param_3)
+
+{
+  EnabledStateManager *SRWLock;
+  bool bVar1;
+  EnabledStateManager *local_res8;
+  wil_FeatureChangeTime local_28 [2];
+  wil_details_FeatureStateCache *local_20;
+  
+  if (*this == (EnabledStateManager)0x0) {
+    return;
+  }
+  SRWLock = this + 8;
+  AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+  local_res8 = SRWLock;
+  if ((param_3 != 0) && (param_3 == *(uint *)(this + 0x1c))) {
+    local_28[1] = 0;
+    local_28[0] = param_2;
+    local_20 = param_1;
+    bVar1 = details_abi::heap_buffer::push_back((heap_buffer *)(this + 0x50),local_28,0x10);
+    if (bVar1) goto LAB_18002f467;
+  }
+  LOCK();
+  *(uint *)param_1 = *(uint *)param_1 & (-(uint)(param_2 != 0) & 0x83a) - 0x83f;
+  UNLOCK();
+LAB_18002f467:
+  unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              *)&local_res8);
+  return;
+}
+

```


## wil::details::SubscribeFeatureStateCacheToConfigurationChanges

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|SubscribeFeatureStateCacheToConfigurationChanges|
|fullname|wil::details::SubscribeFeatureStateCacheToConfigurationChanges|
|refcount|2|
|length|21|
|called|wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges|
|calling||
|paramcount|3|
|address|18002f490|
|sig|void __cdecl SubscribeFeatureStateCacheToConfigurationChanges(wil_details_FeatureStateCache * param_1, wil_FeatureChangeTime param_2, uint param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::SubscribeFeatureStateCacheToConfigurationChanges
+++ wil::details::SubscribeFeatureStateCacheToConfigurationChanges
@@ -0,0 +1,14 @@
+
+/* void __cdecl wil::details::SubscribeFeatureStateCacheToConfigurationChanges(union
+   wil_details_FeatureStateCache * __ptr64,enum wil_FeatureChangeTime,unsigned int) */
+
+void __cdecl
+wil::details::SubscribeFeatureStateCacheToConfigurationChanges
+          (wil_details_FeatureStateCache *param_1,wil_FeatureChangeTime param_2,uint param_3)
+
+{
+  EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+            ((EnabledStateManager *)&g_enabledStateManager,param_1,param_2,param_3);
+  return;
+}
+

```


## Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline|
|fullname|Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline|
|refcount|1|
|length|44|
|called|wil_details_IsEnabledFallback|
|calling|_PnpValidatePropertyData|
|paramcount|0|
|address|180067d1c|
|sig|uint __fastcall Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline
+++ Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline
@@ -0,0 +1,15 @@
+
+uint Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline(void)
+
+{
+  uint uVar1;
+  undefined8 local_res8;
+  
+  local_res8 = (undefined4 *)(ulonglong)Feature_KernelPnP_PropertyValidation__private_featureState;
+  if ((Feature_KernelPnP_PropertyValidation__private_featureState & 0x10) != 0) {
+    return Feature_KernelPnP_PropertyValidation__private_featureState & 1;
+  }
+  uVar1 = wil_details_IsEnabledFallback(local_res8,3);
+  return uVar1;
+}
+

```


## wil_details_FeatureReporting_ReportUsageToService

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_FeatureReporting_ReportUsageToService|
|fullname|wil_details_FeatureReporting_ReportUsageToService|
|refcount|2|
|length|114|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_FeatureReporting_ReportUsageToServiceDirect<br>wil_details_MapReportingKind|
|calling|wil_details_IsEnabledFallback|
|paramcount|3|
|address|180067e44|
|sig|undefined __fastcall wil_details_FeatureReporting_ReportUsageToService(undefined8 param_1, undefined8 param_2, uint param_3)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureReporting_ReportUsageToService
+++ wil_details_FeatureReporting_ReportUsageToService
@@ -0,0 +1,28 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+
+void wil_details_FeatureReporting_ReportUsageToService
+               (undefined8 param_1,undefined8 param_2,uint param_3)
+
+{
+  bool bVar1;
+  uint uVar2;
+  undefined7 extraout_var;
+  ulonglong uVar3;
+  uint uVar4;
+  uint local_res18 [4];
+  
+  uVar4 = (uint)param_2 & 1;
+  uVar3 = (ulonglong)param_3;
+  local_res18[0] = param_3;
+  uVar2 = wil_details_MapReportingKind(param_3,uVar4);
+  bVar1 = wil_details_FeatureReporting_ReportUsageToServiceDirect(uVar3,param_2,(ulonglong)uVar2);
+  if (((int)CONCAT71(extraout_var,bVar1) != 0) &&
+     (g_wil_details_pfnFeatureLoggingHook != (code *)0x0)) {
+    (*g_wil_details_pfnFeatureLoggingHook)
+              (0x37bd5ec,&Feature_Standalone_Future_logged_traits,0,uVar4,local_res18,0,0,1);
+  }
+  return;
+}
+

```


## wil_details_FeatureReporting_ReportUsageToServiceDirect

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_FeatureReporting_ReportUsageToServiceDirect|
|fullname|wil_details_FeatureReporting_ReportUsageToServiceDirect|
|refcount|2|
|length|137|
|called|__security_check_cookie<br>wil_RtlStagingConfig_RecordFeatureUsage<br>wil_details_FeatureReporting_RecordUsageInCache|
|calling|wil_details_FeatureReporting_ReportUsageToService|
|paramcount|3|
|address|180067ec0|
|sig|bool __fastcall wil_details_FeatureReporting_ReportUsageToServiceDirect(undefined8 param_1, undefined8 param_2, undefined8 param_3)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureReporting_ReportUsageToServiceDirect
+++ wil_details_FeatureReporting_ReportUsageToServiceDirect
@@ -0,0 +1,24 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+
+bool wil_details_FeatureReporting_ReportUsageToServiceDirect
+               (undefined8 param_1,undefined8 param_2,undefined8 param_3)
+
+{
+  uint *puVar1;
+  undefined1 auStack_78 [48];
+  uint local_48 [10];
+  undefined8 local_20;
+  ulonglong local_18;
+  
+  local_18 = __security_cookie ^ (ulonglong)auStack_78;
+  puVar1 = wil_details_FeatureReporting_RecordUsageInCache
+                     (local_48,(uint *)&Feature_KernelPnP_PropertyValidation__private_reporting,
+                      param_3,(uint)((ulonglong)param_2 >> 0x20));
+  local_20 = *(undefined8 *)(puVar1 + 4);
+  if ((((uint)param_2 >> 10 & 1) != 0) && ((int)param_3 != 0xfe)) {
+    wil_RtlStagingConfig_RecordFeatureUsage(0x37bd5ec,(short)param_3,(uint)param_2 >> 0xb & 1);
+  }
+  return (int)local_20 == 0;
+}
+

```


## wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|fullname|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|refcount|3|
|length|263|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetCurrentFeatureEnabledState|
|calling|wil_details_GetCurrentFeatureEnabledState<br>wil_details_IsEnabledFallback|
|paramcount|3|
|address|180067f50|
|sig|ulonglong __fastcall wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState(uint * param_1, ulonglong param_2, longlong param_3)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+++ wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
@@ -0,0 +1,68 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+
+ulonglong wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+                    (uint *param_1,ulonglong param_2,longlong param_3)
+
+{
+  int iVar1;
+  uint uVar2;
+  ulonglong uVar3;
+  uint uVar4;
+  uint uVar5;
+  ulonglong uVar6;
+  bool bVar7;
+  uint local_res8 [2];
+  undefined8 local_res10;
+  
+  iVar1 = 0;
+  local_res8[0] = 0;
+  local_res10 = param_2;
+  if (g_wil_details_ensureSubscribedToFeatureConfigurationChanges != (code *)0x0) {
+    iVar1 = (*g_wil_details_ensureSubscribedToFeatureConfigurationChanges)();
+  }
+  uVar2 = wil_details_GetCurrentFeatureEnabledState(param_3,local_res8);
+  if (*(char *)(param_3 + 0x1c) == '\0') {
+    local_res8[0] = local_res8[0] & -(uint)(iVar1 != 0);
+  }
+  uVar3 = param_2 & 0xffffffff;
+  do {
+    uVar6 = param_2;
+    uVar5 = (uint)uVar3;
+    local_res10 = CONCAT44(local_res10._4_4_,uVar5);
+    if ((local_res8[0] != 0) && (local_res10 = CONCAT44(local_res10._4_4_,uVar5), (uVar3 & 2) == 0))
+    {
+      uVar4 = uVar5 & 0xfffff63e | uVar2 & 0x9c1;
+      uVar5 = uVar4 | 2;
+      local_res10 = CONCAT44(local_res10._4_4_,uVar4) | 2;
+    }
+    if ((uVar6 & 4) == 0) {
+      uVar4 = uVar2 & 0x400 | uVar5 & 0xfffffbff;
+      uVar5 = uVar4 | 4;
+      local_res10 = CONCAT44(local_res10._4_4_,uVar4) | 4;
+    }
+    uVar3 = uVar6 & 0xffffffff;
+    LOCK();
+    uVar4 = *param_1;
+    bVar7 = (uint)uVar6 == uVar4;
+    if (bVar7) {
+      *param_1 = uVar5;
+    }
+    else {
+      uVar3 = (ulonglong)uVar4;
+    }
+    UNLOCK();
+    param_2 = uVar3;
+  } while (!bVar7);
+  if (((uVar6 & 4) == 0) &&
+     (g_wil_details_subscribeFeatureStateCacheToConfigurationChanges != (code *)0x0)) {
+    (*g_wil_details_subscribeFeatureStateCacheToConfigurationChanges)
+              (param_1,*(undefined1 *)(param_3 + 0x1c),iVar1);
+  }
+  if (local_res8[0] == 0) {
+    local_res10 = CONCAT44(local_res10._4_4_,uVar2 & 0x9c1 | uVar5 & 0xfffff63e);
+  }
+  return local_res10;
+}
+

```


## wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|
|fullname|wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|
|refcount|1|
|length|76|
|called||
|calling|wil_details_IsEnabledFallback|
|paramcount|2|
|address|180068060|
|sig|undefined __fastcall wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath(uint param_1, int param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath
+++ wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath
@@ -0,0 +1,41 @@
+
+void wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath(uint param_1,int param_2)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  bool bVar4;
+  
+  if (param_2 == 3) {
+    uVar3 = 0x10;
+  }
+  else {
+    if (param_2 != 4) {
+      return;
+    }
+    uVar3 = 0x20;
+  }
+  if ((Feature_KernelPnP_PropertyValidation__private_featureState & 2) != 0) {
+    uVar2 = Feature_KernelPnP_PropertyValidation__private_featureState;
+    while ((uVar2 & 1) == (param_1 & 1)) {
+      LOCK();
+      bVar4 = uVar2 == Feature_KernelPnP_PropertyValidation__private_featureState;
+      uVar1 = uVar3 | uVar2;
+      if (!bVar4) {
+        uVar2 = Feature_KernelPnP_PropertyValidation__private_featureState;
+        uVar1 = Feature_KernelPnP_PropertyValidation__private_featureState;
+      }
+      Feature_KernelPnP_PropertyValidation__private_featureState = uVar1;
+      UNLOCK();
+      if (bVar4) {
+        return;
+      }
+      if ((uVar2 & 2) == 0) {
+        return;
+      }
+    }
+  }
+  return;
+}
+

```


## wil_details_GetCurrentFeatureEnabledState

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_GetCurrentFeatureEnabledState|
|fullname|wil_details_GetCurrentFeatureEnabledState|
|refcount|2|
|length|343|
|called|wil_RtlStagingConfig_QueryFeatureState<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|calling|wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState|
|paramcount|2|
|address|1800680b4|
|sig|uint __fastcall wil_details_GetCurrentFeatureEnabledState(longlong param_1, undefined4 * param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_GetCurrentFeatureEnabledState
+++ wil_details_GetCurrentFeatureEnabledState
@@ -0,0 +1,72 @@
+
+uint wil_details_GetCurrentFeatureEnabledState(longlong param_1,undefined4 *param_2)
+
+{
+  char cVar1;
+  undefined8 *puVar2;
+  int iVar3;
+  uint uVar4;
+  ulonglong uVar5;
+  uint uVar6;
+  longlong *plVar7;
+  uint local_res8;
+  ulonglong local_res10;
+  uint local_28 [8];
+  
+  cVar1 = *(char *)(param_1 + 0x1c);
+  *param_2 = 1;
+  local_28[4] = 0;
+  local_28[5] = 0;
+  local_28[0] = 0;
+  local_28[1] = 0;
+  local_28[2] = 0;
+  local_28[3] = 0;
+  iVar3 = wil_RtlStagingConfig_QueryFeatureState
+                    (local_28,*(uint *)(param_1 + 0x18),(uint)((byte)(cVar1 - 2U) < 2),(uint *)0x0);
+  uVar4 = -(uint)(iVar3 != 0) & local_28[0] & 3;
+  if (uVar4 == 0) {
+    uVar6 = -(uint)(*(char *)(param_1 + 0x1f) != '\0') & 0x40;
+  }
+  else {
+    uVar6 = 0;
+    if (local_28[0] == 2) {
+      uVar6 = 0x40;
+    }
+  }
+  local_res8 = uVar6 >> 6 ^
+               (uVar4 << 7 | -(uint)(local_28[5] != 0) & 0x800 | -(uint)(local_28[4] != 0) & 0x400 |
+               uVar6);
+  if ((uVar6 != 0) && (plVar7 = *(longlong **)(param_1 + 0x20), plVar7 != (longlong *)0x0)) {
+    do {
+      puVar2 = (undefined8 *)*plVar7;
+      if (puVar2 == (undefined8 *)0x0) {
+        return local_res8;
+      }
+      if ((*(char *)((longlong)puVar2 + 0x1e) == '\0') &&
+         (*(char *)((longlong)puVar2 + 0x1d) == '\0')) {
+        uVar6 = *(uint *)*puVar2;
+        local_res10 = (ulonglong)uVar6;
+        if ((uVar6 & 2) == 0) {
+          uVar5 = wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+                            ((uint *)*puVar2,local_res10,(longlong)puVar2);
+          uVar6 = (uint)uVar5;
+        }
+        uVar4 = local_res8 & 0xfffffffe;
+        local_res8 = (uint)((uVar6 & local_res8 & 1) != 0);
+      }
+      else {
+        if (((local_res8 & 1) == 0) || (*(char *)((longlong)puVar2 + 0x1f) == '\0')) {
+          uVar4 = 0;
+        }
+        else {
+          uVar4 = 1;
+        }
+        local_res8 = local_res8 & 0xfffffffe;
+      }
+      local_res8 = local_res8 | uVar4;
+      plVar7 = plVar7 + 1;
+    } while ((local_res8 & 1) != 0);
+  }
+  return local_res8;
+}
+

```


## wil_details_IsEnabledFallback

### Function Meta



|Key|post.dll|
| :---: | :---: |
|name|wil_details_IsEnabledFallback|
|fullname|wil_details_IsEnabledFallback|
|refcount|2|
|length|135|
|called|wil_details_FeatureReporting_ReportUsageToService<br>wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState<br>wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath|
|calling|Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline|
|paramcount|2|
|address|180068214|
|sig|uint __fastcall wil_details_IsEnabledFallback(undefined4 * param_1, uint param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_IsEnabledFallback
+++ wil_details_IsEnabledFallback
@@ -0,0 +1,26 @@
+
+uint wil_details_IsEnabledFallback(undefined4 *param_1,uint param_2)
+
+{
+  uint uVar1;
+  undefined4 *puVar2;
+  ulonglong local_res18;
+  
+  uVar1 = (uint)param_1;
+  local_res18 = (ulonglong)param_1 & 0xffffffff;
+  if (((ulonglong)param_1 & 2) == 0) {
+    puVar2 = &Feature_KernelPnP_PropertyValidation__private_featureState;
+    local_res18 = wil_details_FeatureStateCache_ReevaluateCachedFeatureEnabledState
+                            (&Feature_KernelPnP_PropertyValidation__private_featureState,
+                             (ulonglong)param_1,0x1800a2ff0);
+    param_1 = puVar2;
+    uVar1 = (uint)local_res18;
+  }
+  if ((param_2 != 0) &&
+     (wil_details_FeatureReporting_ReportUsageToService(param_1,local_res18,param_2),
+     param_2 - 3 < 2)) {
+    wil_details_FeatureStateCache_TryEnableDeviceUsageFastPath((uint)local_res18,param_2);
+  }
+  return uVar1 & 1;
+}
+

```


# Modified


*Modified functions contain code changes*
## wil::details::ReportUsageToServiceDirect

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.97|
|i_ratio|0.82|
|m_ratio|0.99|
|b_ratio|0.99|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|ReportUsageToServiceDirect|ReportUsageToServiceDirect|
|fullname|wil::details::ReportUsageToServiceDirect|wil::details::ReportUsageToServiceDirect|
|refcount|2|2|
|`length`|206|209|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApi_RecordFeatureUsage<br>wil_details_FeatureReporting_RecordUsageInCache|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApi_RecordFeatureUsage<br>wil_details_FeatureReporting_RecordUsageInCache|
|calling|wil::details::ReportUsageToService|wil::details::ReportUsageToService|
|paramcount|8|8|
|`address`|180034d8c|180034a18|
|sig|int __cdecl ReportUsageToServiceDirect(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, wil_details_ServiceReportingKind param_5, uint param_6, __uint64 param_7, uchar param_8)|int __cdecl ReportUsageToServiceDirect(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, wil_details_ServiceReportingKind param_5, uint param_6, __uint64 param_7, uchar param_8)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::ReportUsageToServiceDirect Diff


```diff
--- wil::details::ReportUsageToServiceDirect
+++ wil::details::ReportUsageToServiceDirect
@@ -1,46 +1,46 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* int __cdecl wil::details::ReportUsageToServiceDirect(struct wil_details_FeatureReportingCache *
    __ptr64,unsigned int,int,int,enum wil_details_ServiceReportingKind,unsigned int,unsigned
    __int64,unsigned char) */
 
 int __cdecl
 wil::details::ReportUsageToServiceDirect
           (wil_details_FeatureReportingCache *param_1,uint param_2,int param_3,int param_4,
           wil_details_ServiceReportingKind param_5,uint param_6,__uint64 param_7,uchar param_8)
 
 {
   wil_details_ServiceReportingKind wVar1;
   uint *puVar2;
   int iVar3;
   ulonglong uVar4;
   undefined8 local_38;
   undefined8 uStack_30;
   undefined8 local_28;
   uint local_20 [6];
   
   uVar4 = (ulonglong)param_5;
-  puVar2 = wil_details_FeatureReporting_RecordUsageInCache(local_20,(uint *)param_1,uVar4);
+  puVar2 = wil_details_FeatureReporting_RecordUsageInCache(local_20,(uint *)param_1,uVar4,0);
   local_38 = *(undefined8 *)puVar2;
   uStack_30 = *(undefined8 *)(puVar2 + 2);
   local_28 = *(undefined8 *)(puVar2 + 4);
   RecordFeatureUsageCallback
             (param_2,param_5,(uint)uVar4,param_1,(wil_details_RecordUsageResult *)&local_38);
   iVar3 = 0;
   if (param_3 != 0) {
     wVar1 = param_5 | 0x80000000;
     if (param_4 == 0) {
       wVar1 = param_5;
     }
     WilApi_RecordFeatureUsage(param_2,wVar1,0,(char *)param_1);
   }
   if ((int)local_28 == 0) {
     if (g_wil_details_realtimeFeatureUsageHook != (code *)0x0) {
       (*g_wil_details_realtimeFeatureUsageHook)(param_2,param_5,param_8);
     }
     iVar3 = 1;
   }
   return iVar3;
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.6|
|i_ratio|0.74|
|m_ratio|0.97|
|b_ratio|0.95|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|245|254|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|180037000|180036c5c|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState
@@ -1,66 +1,72 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest> *this,int *param_1)
 
 {
   bool bVar1;
   bool bVar2;
   FEATURE_ENABLED_STATE FVar3;
   ReportingKind RVar4;
   undefined1 uVar5;
-  uint uVar7;
+  ReportingKind RVar6;
+  ReportingKind RVar7;
+  uint uVar8;
+  ReportingKind RVar9;
   int *in_R8;
-  FEATURE_ENABLED_STATE FVar8;
-  ReportingKind RVar6;
-  __uint64 _Var9;
+  FEATURE_ENABLED_STATE FVar10;
+  __uint64 _Var11;
   
   FVar3 = WilApi_GetFeatureEnabledState(0x3667c9a,(FEATURE_CHANGE_TIME)param_1,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar8 = FVar3 & 0xffffff3f;
-  _Var9 = (__uint64)FVar8;
-  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400 |
-          (FVar3 & 3) << 7;
-  if (FVar8 != 0) {
+  FVar10 = FVar3 & 0xffffff3f;
+  _Var11 = (__uint64)FVar10;
+  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
+  RVar7 = RVar6 | (FVar3 & 3) << 7;
+  *param_1 = RVar7;
+  if (FVar10 == 0) {
+    RVar4 = 0x40;
+  }
+  else {
     RVar4 = 0;
-    if (FVar8 == 2) {
+    if (FVar10 == 2) {
       RVar4 = 0x40;
     }
-    RVar6 = RVar6 | RVar4;
   }
-  uVar5 = (undefined1)RVar6;
-  RVar4 = 0xc00;
-  *param_1 = RVar6;
+  RVar7 = RVar7 | RVar4;
+  uVar5 = (undefined1)RVar7;
+  RVar9 = 0xc00;
+  *param_1 = RVar7;
   bVar2 = false;
-  uVar7 = 1;
-  if ((RVar6 & 0xc00) == 0xc00) {
+  uVar8 = 1;
+  if (RVar6 == 0xc00) {
     bVar1 = true;
   }
   else {
     bVar1 = false;
-    if ((RVar6 & 0x40) == 0) goto LAB_0;
+    if (RVar4 == 0) goto LAB_0;
   }
   bVar2 = FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::__private_IsEnabled
                     (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_UxPerfImp>::GetImpl(void)'
-                      ::__l2::impl,RVar6);
+                      ::__l2::impl,RVar7);
   if (bVar2) {
     FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::ReportUsage
               (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetImpl(void)'
-                ::__l2::impl,(bool)uVar5,RVar4,_Var9);
+                ::__l2::impl,(bool)uVar5,RVar9,_Var11);
   }
   if ((bVar1) && (!bVar2)) {
     *param_1 = *param_1 & 0xfffffbff;
   }
 LAB_0:
   if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
-    uVar7 = 0;
+    uVar8 = 0;
   }
-  *param_1 = *param_1 & 0xfffffffeU | uVar7;
+  *param_1 = *param_1 & 0xfffffffeU | uVar8;
   return param_1;
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.3|
|i_ratio|0.63|
|m_ratio|0.9|
|b_ratio|0.88|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|254|215|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|1800345f8|180034408|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState called
@@ -2 +2 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState
@@ -1,72 +1,60 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp> *this,int *param_1)
 
 {
   bool bVar1;
-  bool bVar2;
-  FEATURE_ENABLED_STATE FVar3;
-  ReportingKind RVar4;
-  undefined1 uVar5;
-  ReportingKind RVar6;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  bool bVar4;
+  uint uVar5;
+  uint uVar6;
   ReportingKind RVar7;
-  uint uVar8;
-  ReportingKind RVar9;
   int *in_R8;
-  FEATURE_ENABLED_STATE FVar10;
-  __uint64 _Var11;
+  FEATURE_ENABLED_STATE FVar8;
+  __uint64 _Var9;
   
-  FVar3 = WilApi_GetFeatureEnabledState(0x33b9b24,(FEATURE_CHANGE_TIME)param_1,in_R8);
+  FVar2 = WilApi_GetFeatureEnabledState(0x33b9b24,(FEATURE_CHANGE_TIME)param_1,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar10 = FVar3 & 0xffffff3f;
-  _Var11 = (__uint64)FVar10;
-  RVar6 = -(uint)((FVar3 & 0x40) != 0) & 0x800 | -(uint)((FVar3 & 0x80) != 0) & 0x400;
-  RVar7 = RVar6 | (FVar3 & 3) << 7;
-  *param_1 = RVar7;
-  if (FVar10 == 0) {
-    RVar4 = 0x40;
+  FVar8 = FVar2 & 0xffffff3f;
+  _Var9 = (__uint64)FVar8;
+  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar6 = uVar5 | (FVar2 & 3) << 7;
+  *param_1 = uVar6;
+  if (FVar8 == 0) {
+    uVar3 = 0x40;
   }
   else {
-    RVar4 = 0;
-    if (FVar10 == 2) {
-      RVar4 = 0x40;
+    uVar3 = 0;
+    if (FVar8 == 2) {
+      uVar3 = 0x40;
     }
   }
-  RVar7 = RVar7 | RVar4;
-  uVar5 = (undefined1)RVar7;
-  RVar9 = 0xc00;
-  *param_1 = RVar7;
-  bVar2 = false;
-  uVar8 = 1;
-  if (RVar6 == 0xc00) {
+  uVar6 = uVar6 | uVar3;
+  bVar4 = SUB41(uVar6,0);
+  RVar7 = 0xc00;
+  *param_1 = uVar6;
+  bVar1 = false;
+  uVar6 = 1;
+  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
+    FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage
+              (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_TestLabVal>::GetImpl(void)'
+                ::__l2::impl,bVar4,0xc00,_Var9);
+    FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage
+              (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetImpl(void)'
+                ::__l2::impl,bVar4,RVar7,_Var9);
     bVar1 = true;
   }
-  else {
-    bVar1 = false;
-    if (RVar4 == 0) goto LAB_0;
+  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
+    uVar6 = 0;
   }
-  bVar2 = FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
-                    (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_TestLabVal>::GetImpl(void)'
-                      ::__l2::impl,RVar7);
-  if (bVar2) {
-    FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage
-              (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetImpl(void)'
-                ::__l2::impl,(bool)uVar5,RVar9,_Var11);
-  }
-  if ((bVar1) && (!bVar2)) {
-    *param_1 = *param_1 & 0xfffffbff;
-  }
-LAB_0:
-  if (((*param_1 & 0x40U) == 0) || (!bVar2)) {
-    uVar8 = 0;
-  }
-  *param_1 = *param_1 & 0xfffffffeU | uVar8;
+  *param_1 = *param_1 & 0xfffffffeU | uVar6;
   return param_1;
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.28|
|i_ratio|0.37|
|m_ratio|0.73|
|b_ratio|0.65|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|GetCurrentFeatureEnabledState|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState|
|refcount|2|2|
|`length`|215|122|
|`called`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage<br>wil::details::WilApi_GetFeatureEnabledState|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState|
|paramcount|2|2|
|`address`|180034700|1800344e8|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> * this, int * param_1)|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> * this, int * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState Called Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState called
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState called
@@ -1,2 +0,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState
@@ -1,60 +1,29 @@
 
 /* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
 
 int * __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::
 GetCurrentFeatureEnabledState
           (FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> *this,int *param_1)
 
 {
-  bool bVar1;
-  FEATURE_ENABLED_STATE FVar2;
+  FEATURE_ENABLED_STATE FVar1;
+  uint uVar2;
+  int *in_R8;
   uint uVar3;
-  bool bVar4;
-  uint uVar5;
-  uint uVar6;
-  ReportingKind RVar7;
-  int *in_R8;
-  FEATURE_ENABLED_STATE FVar8;
-  __uint64 _Var9;
   
-  FVar2 = WilApi_GetFeatureEnabledState(0x33b9b19,(FEATURE_CHANGE_TIME)param_1,in_R8);
+  FVar1 = WilApi_GetFeatureEnabledState(0x33b9b19,(FEATURE_CHANGE_TIME)param_1,in_R8);
   param_1[0] = 0;
   param_1[1] = 0;
-  FVar8 = FVar2 & 0xffffff3f;
-  _Var9 = (__uint64)FVar8;
-  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
-  uVar6 = uVar5 | (FVar2 & 3) << 7;
-  *param_1 = uVar6;
-  if (FVar8 == 0) {
+  uVar2 = -(uint)((FVar1 & 0x40) != 0) & 0x800 | -(uint)((FVar1 & 0x80) != 0) & 0x400 |
+          (FVar1 & 3) << 7;
+  *param_1 = uVar2;
+  uVar3 = 0x40;
+  if (((FVar1 & 0xffffff3f) != 0) && (uVar3 = 0, (FVar1 & 0xffffff3f) == 2)) {
     uVar3 = 0x40;
   }
-  else {
-    uVar3 = 0;
-    if (FVar8 == 2) {
-      uVar3 = 0x40;
-    }
-  }
-  uVar6 = uVar6 | uVar3;
-  bVar4 = SUB41(uVar6,0);
-  RVar7 = 0xc00;
-  *param_1 = uVar6;
-  bVar1 = false;
-  uVar6 = 1;
-  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
-    FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
-              (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_PerfImpTest>::GetImpl(void)'
-                ::__l2::impl,bVar4,0xc00,_Var9);
-    FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
-              (&`private:_static_class_wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>&___ptr64___cdecl_wil::Feature<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetImpl(void)'
-                ::__l2::impl,bVar4,RVar7,_Var9);
-    bVar1 = true;
-  }
-  if (((*param_1 & 0x40U) == 0) || (!bVar1)) {
-    uVar6 = 0;
-  }
-  *param_1 = *param_1 & 0xfffffffeU | uVar6;
+  *param_1 = uVar2 | uVar3 | 1;
   return param_1;
 }
 

```


## wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length|
|ratio|0.85|
|i_ratio|0.23|
|m_ratio|0.85|
|b_ratio|0.85|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|
|fullname|wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|
|refcount|2|2|
|`length`|71|99|
|called|||
|calling|||
|paramcount|0|0|
|address|1800012c0|1800012c0|
|sig|undefined __fastcall `dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''(void)|undefined __fastcall `dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi'' Diff


```diff
--- wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''
+++ wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''
@@ -1,15 +1,19 @@
 
 void wil::details::_dynamic_initializer_for__g_header_init_InitializeStagingHeaderInternalApi__
                (void)
 
 {
+  g_wil_details_ensureSubscribedToFeatureConfigurationChanges =
+       EnsureSubscribedToFeatureConfigurationChanges;
+  g_wil_details_subscribeFeatureStateCacheToConfigurationChanges =
+       SubscribeFeatureStateCacheToConfigurationChanges;
   g_wil_details_internalGetFeatureEnabledState = WilApiImpl_GetFeatureEnabledState;
   g_wil_details_internalRecordFeatureUsage = WilApiImpl_RecordFeatureUsage;
   g_wil_details_internalSubscribeFeatureStateChangeNotification =
        WilApiImpl_SubscribeFeatureStateChangeNotification;
   g_wil_details_internalUnsubscribeFeatureStateChangeNotification =
        WilApiImpl_UnsubscribeFeatureStateChangeNotification;
   g_wil_details_realtimeFeatureUsageHook = wil_StagingConfig_LogStagedFeatureUsage;
   return;
 }
 

```


## wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,length,address,calling|
|ratio|0.5|
|i_ratio|0.65|
|m_ratio|0.97|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|ReportUsage|ReportUsage|
|fullname|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage|
|refcount|2|2|
|`length`|123|117|
|called|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|`calling`|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled|wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState|
|paramcount|4|4|
|`address`|180034c64|1800348f8|
|sig|void __thiscall ReportUsage(FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|void __thiscall ReportUsage(FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage Calling Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage calling
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage calling
@@ -1 +1 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::__private_IsEnabled
+wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState
```


### wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage Diff


```diff
--- wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage
+++ wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage
@@ -1,31 +1,33 @@
 
 /* public: void __cdecl wil::details::FeatureImpl<struct
    __WilFeatureTraits_Feature_TestLabVal>::ReportUsage(bool,enum wil::ReportingKind,unsigned
    __int64) __ptr64 */
 
 void __thiscall
 wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage
           (FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal> *this,bool param_1,
           ReportingKind param_2,__uint64 param_3)
 
 {
-  ulonglong *puVar1;
-  ulonglong uVar2;
+  __uint64 *p_Var1;
+  uint uVar2;
   undefined4 local_res8;
   undefined2 local_resc;
+  __uint64 local_res20;
   __uint64 in_stack_ffffffffffffffe0;
   
-  uVar2 = (ulonglong)*(uint *)this;
-  if ((*(uint *)this & 4) == 0) {
-    puVar1 = (ulonglong *)GetCachedFeatureEnabledState(this);
-    uVar2 = *puVar1;
+  uVar2 = *(uint *)this;
+  local_res20 = param_3;
+  if ((uVar2 & 4) == 0) {
+    p_Var1 = (__uint64 *)GetCachedFeatureEnabledState(this);
+    local_res20 = *p_Var1;
+    uVar2 = (uint)local_res20;
   }
-  local_resc = 2;
+  local_resc = 3;
   local_res8 = 0;
   ReportUsageToService
-            ((wil_details_FeatureReportingCache *)(this + 8),0x33b9b19,(uint)uVar2 >> 10 & 1,
-             (uint)(uVar2 >> 0xb) & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,(uint)param_1,0,
-             in_stack_ffffffffffffffe0);
+            ((wil_details_FeatureReportingCache *)(this + 8),0x33b9b19,uVar2 >> 10 & 1,
+             uVar2 >> 0xb & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,1,0,in_stack_ffffffffffffffe0);
   return;
 }
 

```


## wil_details_FeatureReporting_RecordUsageInCache

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|code,refcount,length,sig,address,calling|
|ratio|0.99|
|i_ratio|0.54|
|m_ratio|0.99|
|b_ratio|0.98|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|wil_details_FeatureReporting_RecordUsageInCache|wil_details_FeatureReporting_RecordUsageInCache|
|fullname|wil_details_FeatureReporting_RecordUsageInCache|wil_details_FeatureReporting_RecordUsageInCache|
|`refcount`|2|3|
|`length`|369|381|
|called|wil_details_FeatureReporting_IncrementOpportunityInCache<br>wil_details_FeatureReporting_IncrementUsageInCache|wil_details_FeatureReporting_IncrementOpportunityInCache<br>wil_details_FeatureReporting_IncrementUsageInCache|
|`calling`|wil::details::ReportUsageToServiceDirect|wil::details::ReportUsageToServiceDirect<br>wil_details_FeatureReporting_ReportUsageToServiceDirect|
|paramcount|3|4|
|`address`|180035834|180035484|
|`sig`|uint * __fastcall wil_details_FeatureReporting_RecordUsageInCache(uint * param_1, uint * param_2, undefined8 param_3)|uint * __fastcall wil_details_FeatureReporting_RecordUsageInCache(uint * param_1, uint * param_2, undefined8 param_3, uint param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_FeatureReporting_RecordUsageInCache Calling Diff


```diff
--- wil_details_FeatureReporting_RecordUsageInCache calling
+++ wil_details_FeatureReporting_RecordUsageInCache calling
@@ -1,0 +2 @@
+wil_details_FeatureReporting_ReportUsageToServiceDirect
```


### wil_details_FeatureReporting_RecordUsageInCache Diff


```diff
--- wil_details_FeatureReporting_RecordUsageInCache
+++ wil_details_FeatureReporting_RecordUsageInCache
@@ -1,101 +1,101 @@
 
 uint * wil_details_FeatureReporting_RecordUsageInCache
-                 (uint *param_1,uint *param_2,undefined8 param_3)
+                 (uint *param_1,uint *param_2,undefined8 param_3,uint param_4)
 
 {
   uint uVar1;
   uint uVar2;
   uint uVar3;
   uint uVar4;
   uint uVar5;
   bool bVar6;
   
   uVar3 = (uint)param_3;
   param_1[0] = 0;
   param_1[1] = 0;
   param_1[2] = 0;
   param_1[3] = 0;
   param_1[4] = 0;
   param_1[5] = 0;
   if (uVar3 == 0) {
 LAB_0:
     wil_details_FeatureReporting_IncrementUsageInCache(param_2,uVar3,param_3,param_1);
   }
   else {
     if (uVar3 == 1) {
 LAB_1:
       wil_details_FeatureReporting_IncrementOpportunityInCache(param_2,uVar3,param_3,param_1);
       return param_1;
     }
     if ((uVar3 != 2) && (uVar3 != 3)) {
       if (uVar3 == 4) goto LAB_0;
       if (uVar3 == 5) goto LAB_1;
       if ((uVar3 != 6) && (uVar3 != 7)) {
         uVar5 = uVar3 - 0x140;
         if ((int)uVar5 < 0x40) {
           uVar4 = param_2[1];
           do {
             if (((uVar4 & 0x10) == 0) || (uVar2 = 1, (uVar4 >> 5 & 0x3f) != uVar5)) {
               uVar2 = 0;
             }
             param_1[4] = uVar2;
             LOCK();
             uVar2 = param_2[1];
             bVar6 = uVar4 == uVar2;
             if (bVar6) {
               param_2[1] = (uVar5 * 0x20 ^ uVar4) & 0x7e0 ^ uVar4 | 0x10;
               uVar2 = uVar4;
             }
             uVar4 = uVar2;
             UNLOCK();
           } while (!bVar6);
           if (param_1[4] != 0) {
             return param_1;
           }
         }
-        param_1[3] = 0;
         param_1[2] = uVar3;
         param_1[1] = 1;
+        param_1[3] = param_4;
         return param_1;
       }
     }
     uVar5 = 0;
     if (uVar3 == 2) {
       uVar5 = 2;
     }
     else if (uVar3 == 3) {
       uVar5 = 8;
     }
     else if (uVar3 == 6) {
       uVar5 = 4;
     }
     else if (uVar3 == 7) {
       uVar5 = 0x10;
     }
     uVar4 = 1;
     uVar3 = *param_2;
     do {
       uVar1 = uVar3;
       uVar3 = uVar5 | uVar1;
       param_1[4] = (uint)(uVar3 == uVar1);
       uVar2 = uVar3 | 1;
       if (uVar3 == uVar1) {
         uVar2 = uVar3;
       }
       LOCK();
       uVar3 = *param_2;
       bVar6 = uVar1 == uVar3;
       if (bVar6) {
         *param_2 = uVar2;
         uVar3 = uVar1;
       }
       UNLOCK();
     } while (!bVar6);
     if (((uVar2 & 1) == 0) || ((uVar1 & 1) != 0)) {
       uVar4 = 0;
     }
     *param_1 = uVar4;
   }
   return param_1;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|LocalFree|LocalFree|
|fullname|API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree|API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree|
|`refcount`|22|23|
|length|0|0|
|called|||
|calling|<details><summary>Expand for full list:<br>CHostContext::CreateHostProcess<br>CHostContext::CreateHostTokenAndSid<br>GetUserSidStringFromToken<br>InitializeRpcServices<br>IsServiceSid<br>MidlFreeSwDeviceCreationInfo<br>_CmGetDeviceMappedPropertyFromRegProp<br>_CmGetInstallerClassMappedPropertyFromRegProp<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetInstallerClassMappedPropertyFromRegProp<br>_PnpValidatePropertyData</summary>wil::details::unique_storage<struct_wil::details::resource_policy<void*___ptr64,void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64),struct_wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<void*___ptr64,void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64),struct_wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_><br>wistd::unique_ptr<struct__ACL,struct_wil::function_deleter<void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64)>_>::reset</details>|<details><summary>Expand for full list:<br>CHostContext::CreateHostProcess<br>CHostContext::CreateHostTokenAndSid<br>GetUserSidStringFromToken<br>InitializeRpcServices<br>IsServiceSid<br>MidlFreeSwDeviceCreationInfo<br>_CmGetDeviceMappedPropertyFromRegProp<br>_CmGetInstallerClassMappedPropertyFromRegProp<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetInstallerClassMappedPropertyFromRegProp<br>_PnpValidatePropertyData</summary>wil::details::unique_storage<struct_wil::details::resource_policy<void*___ptr64,void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64),struct_wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<void*___ptr64,void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64),struct_wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_><br>wistd::unique_ptr<struct__ACL,struct_wil::function_deleter<void*___ptr64_(__cdecl*)(void*___ptr64),&void*___ptr64___cdecl_LocalFree(void*___ptr64)>_>::reset</details>|
|paramcount|1|1|
|address|EXTERNAL:00000131|EXTERNAL:00000131|
|sig|HLOCAL __stdcall LocalFree(HLOCAL hMem)|HLOCAL __stdcall LocalFree(HLOCAL hMem)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

## ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|fullname|wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|`refcount`|76|75|
|length|29|29|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::ReleaseSRWLockExclusive|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::ReleaseSRWLockExclusive|
|`calling`|<details><summary>Expand for full list:<br><lambda_283a6241bde32cb5bf1bb455a6092f21>::operator()<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>CAssociationContext::AddChildSetMember<br>CAssociationContext::AddSetMember<br>CAssociationContext::SetFinalizeWaitCallback<br>DAS::DevnodeManagment::Devnode::ExtractInterface<br>DAS::DevnodeManagment::Devnode::RegisterInterface<br>DAS::DevnodeManagment::DevnodeFactory::Close<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeCreationWork<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes</summary>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::Dispatcher::Dispatch::DispatchWorkCallback<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::ProviderManagement::InboundOps::StartAssocOp<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::RemoveStore<br>`CAssociationContext::AddChildSetMember'::__l1::dtor$1<br>`DAS::DevnodeManagment::Devnode::RegisterInterface'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::Deactivate'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked'::__l1::dtor$2<br>`DAS::Dispatcher::Watchdog::AddTimestamp'::__l1::dtor$0<br>`DAS::ProviderManagement::ProviderManager::ProcessRegChange'::__l1::dtor$3<br>`Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore'::__l1::dtor$2<br>std::_Func_impl_no_alloc<<lambda_43177d18f621a83555d689f4a4d36771>,long>::_Do_call<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::IsFeatureConfigured<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_283a6241bde32cb5bf1bb455a6092f21>::operator()<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>CAssociationContext::AddChildSetMember<br>CAssociationContext::AddSetMember<br>CAssociationContext::SetFinalizeWaitCallback<br>DAS::DevnodeManagment::Devnode::ExtractInterface<br>DAS::DevnodeManagment::Devnode::RegisterInterface<br>DAS::DevnodeManagment::DevnodeFactory::Close<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeCreationWork<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes</summary>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::Dispatcher::Dispatch::DispatchWorkCallback<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::ProviderManagement::InboundOps::StartAssocOp<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::RemoveStore<br>`CAssociationContext::AddChildSetMember'::__l1::dtor$1<br>`DAS::DevnodeManagment::Devnode::RegisterInterface'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::Deactivate'::__l1::dtor$1<br>`DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked'::__l1::dtor$2<br>`DAS::Dispatcher::Watchdog::AddTimestamp'::__l1::dtor$0<br>`DAS::ProviderManagement::ProviderManager::ProcessRegChange'::__l1::dtor$3<br>`Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore'::__l1::dtor$2<br>std::_Func_impl_no_alloc<<lambda_43177d18f621a83555d689f4a4d36771>,long>::_Do_call<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::IsFeatureConfigured<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|`address`|180020fbc|18002104c|
|sig|void __thiscall ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>(unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> * this)|void __thiscall ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>(unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> Calling Diff


```diff
--- wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> calling
+++ wil::details::unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<struct_wil::details::resource_policy<struct__RTL_SRWLOCK*___ptr64,void_(__cdecl*)(struct__RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),struct_wistd::integral_constant<unsigned___int64,1>,struct__RTL_SRWLOCK*___ptr64,struct__RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_> calling
@@ -32,0 +33 @@
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
@@ -37 +37,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState
@@ -40 +39,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState
```


## WilApi_GetFeatureEnabledState

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.78|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|WilApi_GetFeatureEnabledState|WilApi_GetFeatureEnabledState|
|fullname|wil::details::WilApi_GetFeatureEnabledState|wil::details::WilApi_GetFeatureEnabledState|
|`refcount`|19|17|
|length|35|35|
|called|_guard_dispatch_icall$thunk$10345483385596137414|_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|<details><summary>Expand for full list:<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCurrentFeatureEnabledState</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState</details>|<details><summary>Expand for full list:<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCurrentFeatureEnabledState</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCurrentFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCurrentFeatureEnabledState</details>|
|paramcount|3|3|
|`address`|180034ef0|180034b70|
|sig|FEATURE_ENABLED_STATE __cdecl WilApi_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|FEATURE_ENABLED_STATE __cdecl WilApi_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### WilApi_GetFeatureEnabledState Calling Diff


```diff
--- wil::details::WilApi_GetFeatureEnabledState calling
+++ wil::details::WilApi_GetFeatureEnabledState calling
@@ -5 +4,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCurrentFeatureEnabledState
@@ -8 +6,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCurrentFeatureEnabledState
```


## ReportUsageToService

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.85|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|ReportUsageToService|ReportUsageToService|
|fullname|wil::details::ReportUsageToService|wil::details::ReportUsageToService|
|`refcount`|20|18|
|length|154|154|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::ReportUsageToServiceDirect<br>wil_details_MapReportingKind|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::ReportUsageToServiceDirect<br>wil_details_MapReportingKind|
|`calling`|<details><summary>Expand for full list:<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::ReportUsage</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::ReportUsage</details>|<details><summary>Expand for full list:<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::ReportUsage</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::ReportUsage<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::ReportUsage</details>|
|paramcount|8|8|
|`address`|180034ce8|180034974|
|sig|void __cdecl ReportUsageToService(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, FEATURE_LOGGED_TRAITS * param_5, int param_6, wil_ReportingKind param_7, __uint64 param_8)|void __cdecl ReportUsageToService(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, FEATURE_LOGGED_TRAITS * param_5, int param_6, wil_ReportingKind param_7, __uint64 param_8)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ReportUsageToService Calling Diff


```diff
--- wil::details::ReportUsageToService calling
+++ wil::details::ReportUsageToService calling
@@ -5 +4,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::ReportUsage
@@ -8 +6,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::ReportUsage
```


## push_back

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.89|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|push_back|push_back|
|fullname|wil::details_abi::heap_buffer::push_back|wil::details_abi::heap_buffer::push_back|
|`refcount`|24|23|
|length|90|90|
|called|memcpy_s<br>wil::details_abi::heap_buffer::ensure|memcpy_s<br>wil::details_abi::heap_buffer::ensure|
|`calling`|<details><summary>Expand for full list:<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::IsFeatureConfigured<br>wil::details_abi::SubscriptionList::SubscribeUnderLock</details>|<details><summary>Expand for full list:<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState</summary>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::IsFeatureConfigured<br>wil::details_abi::SubscriptionList::SubscribeUnderLock</details>|
|paramcount|3|3|
|`address`|180030138|1800302a8|
|sig|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### push_back Calling Diff


```diff
--- wil::details_abi::heap_buffer::push_back calling
+++ wil::details_abi::heap_buffer::push_back calling
@@ -1,0 +2 @@
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
@@ -6 +6,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState
@@ -9 +8,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState
```


## API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|ConvertStringSecurityDescriptorToSecurityDescriptorW|ConvertStringSecurityDescriptorToSecurityDescriptorW|
|fullname|API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW|API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW|
|`refcount`|14|15|
|length|0|0|
|called|||
|calling|DAS::DevnodeManagment::DevnodeFactory::MakeRestrictedSd<br>InitializeRpcServices<br>MidlDasDeviceCreationInfoToSwDeviceCreationInfo<br>SetAepStoreAccessSd<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetInstallerClassMappedPropertyFromRegProp<br>_PnpValidatePropertyData|DAS::DevnodeManagment::DevnodeFactory::MakeRestrictedSd<br>InitializeRpcServices<br>MidlDasDeviceCreationInfoToSwDeviceCreationInfo<br>SetAepStoreAccessSd<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetInstallerClassMappedPropertyFromRegProp<br>_PnpValidatePropertyData|
|paramcount|0|0|
|address|EXTERNAL:0000012f|EXTERNAL:0000012f|
|sig|undefined ConvertStringSecurityDescriptorToSecurityDescriptorW(void)|undefined ConvertStringSecurityDescriptorToSecurityDescriptorW(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

## wil_RtlStagingConfig_RecordFeatureUsage

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.73|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|wil_RtlStagingConfig_RecordFeatureUsage|wil_RtlStagingConfig_RecordFeatureUsage|
|fullname|wil_RtlStagingConfig_RecordFeatureUsage|wil_RtlStagingConfig_RecordFeatureUsage|
|`refcount`|2|3|
|length|87|87|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetNtDllProcedureAddress|_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetNtDllProcedureAddress|
|`calling`|wil::details::WilApiImpl_RecordFeatureUsage|wil::details::WilApiImpl_RecordFeatureUsage<br>wil_details_FeatureReporting_ReportUsageToServiceDirect|
|paramcount|3|3|
|`address`|180030dd0|180030f40|
|sig|__int64 __fastcall wil_RtlStagingConfig_RecordFeatureUsage(undefined4 param_1, undefined2 param_2, int param_3)|__int64 __fastcall wil_RtlStagingConfig_RecordFeatureUsage(undefined4 param_1, undefined2 param_2, int param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_RtlStagingConfig_RecordFeatureUsage Calling Diff


```diff
--- wil_RtlStagingConfig_RecordFeatureUsage calling
+++ wil_RtlStagingConfig_RecordFeatureUsage calling
@@ -1,0 +2 @@
+wil_details_FeatureReporting_ReportUsageToServiceDirect
```


## __GSHandlerCheck

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|__GSHandlerCheck|__GSHandlerCheck|
|fullname|__GSHandlerCheck|__GSHandlerCheck|
|`refcount`|132|133|
|length|29|29|
|called|__GSHandlerCheckCommon|__GSHandlerCheckCommon|
|calling|||
|paramcount|4|4|
|`address`|180082a14|180082b14|
|sig|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## wil_RtlStagingConfig_QueryFeatureState

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|wil_RtlStagingConfig_QueryFeatureState|wil_RtlStagingConfig_QueryFeatureState|
|fullname|wil_RtlStagingConfig_QueryFeatureState|wil_RtlStagingConfig_QueryFeatureState|
|`refcount`|2|3|
|length|271|271|
|called|__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetNtDllProcedureAddress|__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetNtDllProcedureAddress|
|`calling`|wil_QueryFeatureState|wil_QueryFeatureState<br>wil_details_GetCurrentFeatureEnabledState|
|paramcount|4|4|
|`address`|180030cb8|180030e28|
|sig|undefined4 __fastcall wil_RtlStagingConfig_QueryFeatureState(uint * param_1, uint param_2, int param_3, uint * param_4)|undefined4 __fastcall wil_RtlStagingConfig_QueryFeatureState(uint * param_1, uint param_2, int param_3, uint * param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_RtlStagingConfig_QueryFeatureState Calling Diff


```diff
--- wil_RtlStagingConfig_QueryFeatureState calling
+++ wil_RtlStagingConfig_QueryFeatureState calling
@@ -1,0 +2 @@
+wil_details_GetCurrentFeatureEnabledState
```


## API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|AcquireSRWLockExclusive|AcquireSRWLockExclusive|
|fullname|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|
|`refcount`|90|89|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br><lambda_283a6241bde32cb5bf1bb455a6092f21>::operator()<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>CAssociationContext::AddChildSetMember<br>CAssociationContext::AddSetMember<br>CAssociationContext::AsyncNotificationWaitCallback<br>CAssociationContext::SetFinalizeWaitCallback<br>CObjectTable::~CObjectTable<br>CQueryCallback::InactivateContext<br>CQueryContext::DeactiveQuery<br>CQueryContext::MakeResult</summary>CQueryContext::OnQueryStateUpdateWork<br>CQueryContext::ResourceWaitCallback<br>CQueryContext::RestoreProviderQueries<br>CQueryContext::SuspendProviderQueries<br>DAS::DevnodeManagment::Devnode::ExtractInterface<br>DAS::DevnodeManagment::Devnode::RegisterInterface<br>DAS::DevnodeManagment::DevnodeFactory::Close<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeCreationWork<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeFactoryDispatchWorkCallback<br>DAS::DevnodeManagment::DevnodeFactory::RemoveDevnode<br>DAS::DevnodeManagment::DevnodeFactory::StartDevnodeCreation<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::Dispatcher::Dispatch::DispatchWorkCallback<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::ProviderManagement::InboundOps::Deactivate<br>DAS::ProviderManagement::InboundOps::StartAssocOp<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>DestroyProviderHosts<br>DestroyQueryServices<br>DeviceStatusNotificationStub<br>InvalidateActiveQueries<br>OnEnumCeremoniesCompleteStub<br>OnFinalizeComplete<br>OnReadCeremonyDataCompleteStub<br>OnRemoveComplete<br>OnWriteCeremonyDataCompleteStub<br>ProviderContext::GetClassFactory<br>RemoveProviderQuery<br>RpcDevQueryCreate<br>UseRm<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::RemoveStore<br>std::_Func_impl_no_alloc<<lambda_43177d18f621a83555d689f4a4d36771>,long>::_Do_call<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::IsFeatureConfigured<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_283a6241bde32cb5bf1bb455a6092f21>::operator()<br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>CAssociationContext::AddChildSetMember<br>CAssociationContext::AddSetMember<br>CAssociationContext::AsyncNotificationWaitCallback<br>CAssociationContext::SetFinalizeWaitCallback<br>CObjectTable::~CObjectTable<br>CQueryCallback::InactivateContext<br>CQueryContext::DeactiveQuery<br>CQueryContext::MakeResult</summary>CQueryContext::OnQueryStateUpdateWork<br>CQueryContext::ResourceWaitCallback<br>CQueryContext::RestoreProviderQueries<br>CQueryContext::SuspendProviderQueries<br>DAS::DevnodeManagment::Devnode::ExtractInterface<br>DAS::DevnodeManagment::Devnode::RegisterInterface<br>DAS::DevnodeManagment::DevnodeFactory::Close<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeCreationWork<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeFactoryDispatchWorkCallback<br>DAS::DevnodeManagment::DevnodeFactory::RemoveDevnode<br>DAS::DevnodeManagment::DevnodeFactory::StartDevnodeCreation<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::Dispatcher::Dispatch::DispatchWorkCallback<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::ProviderManagement::InboundOps::Deactivate<br>DAS::ProviderManagement::InboundOps::StartAssocOp<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>DestroyProviderHosts<br>DestroyQueryServices<br>DeviceStatusNotificationStub<br>InvalidateActiveQueries<br>OnEnumCeremoniesCompleteStub<br>OnFinalizeComplete<br>OnReadCeremonyDataCompleteStub<br>OnRemoveComplete<br>OnWriteCeremonyDataCompleteStub<br>ProviderContext::GetClassFactory<br>RemoveProviderQuery<br>RpcDevQueryCreate<br>UseRm<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::RemoveStore<br>std::_Func_impl_no_alloc<<lambda_43177d18f621a83555d689f4a4d36771>,long>::_Do_call<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_Dispatcher>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_DeviceAssociation_ge_10d_bugfixes>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_GatePerf>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_ImplVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintIppPsaStabilityFixes_2505>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PrintPlatformStabilizationFixes_2508>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_04_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_05_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_06_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_07_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_08_NonSec>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_Future>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestGateImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_TestLabVal>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxAccOptimization>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxLabTest>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_UxPerfImp>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::IsFeatureConfigured<br>wil::details::RecordFeatureUsageCallback<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|address|EXTERNAL:0000008d|EXTERNAL:0000008d|
|sig|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive Calling Diff


```diff
--- API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
+++ API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
@@ -50,0 +51 @@
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
@@ -55 +55,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_PerfImpTest>::GetCachedFeatureEnabledState
@@ -58 +57,0 @@
-wil::details::FeatureImpl<struct___WilFeatureTraits_Feature_Standalone_25_03_NonSec>::GetCachedFeatureEnabledState
```


## wil_details_MapReportingKind

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.86|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|wil_details_MapReportingKind|wil_details_MapReportingKind|
|fullname|wil_details_MapReportingKind|wil_details_MapReportingKind|
|`refcount`|1|2|
|length|144|144|
|called|||
|`calling`|wil::details::ReportUsageToService|wil::details::ReportUsageToService<br>wil_details_FeatureReporting_ReportUsageToService|
|paramcount|2|2|
|`address`|1800359ac|180035608|
|sig|uint __fastcall wil_details_MapReportingKind(int param_1, int param_2)|uint __fastcall wil_details_MapReportingKind(int param_1, int param_2)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil_details_MapReportingKind Calling Diff


```diff
--- wil_details_MapReportingKind calling
+++ wil_details_MapReportingKind calling
@@ -1,0 +2 @@
+wil_details_FeatureReporting_ReportUsageToService
```


## __security_check_cookie

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.62|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|__security_check_cookie|__security_check_cookie|
|fullname|__security_check_cookie|__security_check_cookie|
|`refcount`|213|214|
|length|30|30|
|called|__report_gsfailure|__report_gsfailure|
|`calling`|<details><summary>Expand for full list:<br><lambda_7bb9c142a194c58151fa833df3683c77>::operator()<br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>ActivateApp<br>AddDerivedKeysToListBasedOnSource<br>CAepStoreAccess::GetProperties<br>CHostContext::CreateHostProcess<br>CHostContext::CreateHostTokenAndSid<br>CQueryCallback::OnQueryResultUpdate<br>CQueryContext::AcquireResource<br>CQueryContext::AddNeedKeysAepContainers<br>CQueryContext::ExecuteFilter</summary>CQueryContext::GenerateResultKeys<br>CQueryContext::GetAepContainerChangedKeys<br>CQueryContext::GetAepContainerIdFromAep<br>CQueryContext::GetPropertyFromAepList<br>CQueryContext::MakeResult<br>CQueryContext::OnQueryStateUpdateWork<br>CQueryContext::PrefilterProvider<br>CQueryContext::ResourceWaitCallback<br>CQueryContext::UpdateAepEntry<br>CQueryContext::UpdateAepServiceEntry<br>CreateInboundContext<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeFactory<br>DAS::DevnodeManagment::DevnodeFactory::GetDevnodeCreationInfo<br>DAS::DevnodeManagment::DevnodeFactory::MakeRestrictedSd<br>DAS::DevnodeManagment::DevnodeFactory::PersistDevnodeCreationInfo<br>DAS::DevnodeManagment::DevnodeFactory::StartDevnodeCreation<br>DAS::DevnodeManagment::DevnodeFactory::StartMakeDevnodeAvailable<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::CleanupStaleUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::CloseProvidersDevnodes<br>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::IsManagingDevnodes<br>DAS::DevnodeManagment::DevnodeManager::MakeMapKey<br>DAS::DevnodeManagment::DevnodeManager::RemoveUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementForStore<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::DevnodeManagment::DevnodeManager::StartWatchingUsers<br>DAS::DevnodeManagment::DevnodeManager::StopDevnodeManagement<br>DAS::DevnodeManagment::DevnodeManager::UninstallDevnodesDevObj<br>DAS::DevnodeManagment::DevnodeManager::UninstallDevnodesSetupDi<br>DAS::Dispatcher::Dispatch::DispatchThread<br>DAS::Dispatcher::DispatchedArgs::DispatchedArgs<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::Dispatcher::Watchdog::CheckForStuckThreads<br>DAS::ProviderManagement::ProviderManager::ChangeTakeOwnershipPrivilege<br>DAS::ProviderManagement::ProviderManager::ForEach<br>DAS::ProviderManagement::ProviderManager::GenerateProviderStatic<br>DAS::ProviderManagement::ProviderManager::GetProviderFromAepId<br>DAS::ProviderManagement::ProviderManager::GetProviderFromProtocolId<br>DAS::ProviderManagement::ProviderManager::GetProvidersBySecurityContext<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>DAS::ProviderManagement::ProviderManager::UnregisterProvider<br>DafClass5GuidFromBlob<br>DafClass5GuidFromBlob<br>DafGetProvidersInfo<br>DafGetTypeFromId<br>DasCreateAssociationContextForApp<br>DasCreateAssociationContextFromOobBlob<br>DasCreateChallengeContext<br>DasCreateImportExportContext<br>DasEvaluateUserSessionStartTrigger<br>DasGenerateProvider<br>DasRegisterForInboundAssociationsAppActivation<br>DasRegisterProvider<br>DasSelectCeremony<br>DasStartEnumCeremonies<br>DasStartFinalize<br>DasStartReadCeremonyData<br>DasStartRemoveAssociation<br>DasStartWriteCeremonyData<br>DasStatusUpdate<br>DasStopTimerCallback<br>InitializeRpcServices<br>IsAepAssociatedShared<br>IsServiceSid<br>McTemplateU0p_EventWriteTransfer<br>McTemplateU0qqq_EventWriteTransfer<br>McTemplateU0zp_EventWriteTransfer<br>McTemplateU0zzqq_EventWriteTransfer<br>McTemplateU0zzqqq_EventWriteTransfer<br>McTemplateU0zzqtttztqq_EventWriteTransfer<br>McTemplateU0zzzqqq_EventWriteTransfer<br>OnEnumCeremoniesCompleteStub<br>OnFinalizeComplete<br>OnInitOobAssociationCompleteStub<br>OnReadCeremonyDataCompleteStub<br>OnRemoveComplete<br>OnWriteCeremonyDataCompleteStub<br>ProviderContext::MakeAndInitialize<br>RemoveProviderAssociations<br>RpcDevQueryCreate<br>SetAepStoreAccessSd<br>SpUtilsSetTargetWindowsDir<br>StartProviderQuery<br>TraceProcessName<br>ValidFilter<br>Windows::Devices::Pnp::Internal::PnpObjectStore::SetProperty<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::`dynamic_initializer_for_'g_knownStores''<br>Windows::Foundation::Collections::Internal::detail::CreateExternalVector<struct_HSTRING__*___ptr64,class_Windows::Foundation::Collections::Internal::Vector<struct_HSTRING__*___ptr64,struct_Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<struct_HSTRING__*___ptr64>,struct_Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<struct_HSTRING__*___ptr64>,struct_Windows::Foundation::Collections::Internal::DefaultVectorOptions<struct_HSTRING__*___ptr64>_>_><br>_CmClassFilterCallback<br>_CmCreateDevice<br>_CmCreateDeviceInterface<br>_CmCreateDeviceInterfaceWorker<br>_CmCreateInstallerClass<br>_CmCreateInterfaceClass<br>_CmDeleteCommonClassRegKey<br>_CmDeleteDevice<br>_CmDeleteDeviceContainer<br>_CmDeleteDeviceContainerRegKey<br>_CmDeleteDeviceInterface<br>_CmDeleteDeviceInterfaceRegKey<br>_CmDeleteDeviceInterfaceWorker<br>_CmDeleteDeviceRegKey<br>_CmDeleteDeviceRegKeyWorker<br>_CmDeleteDeviceWorker<br>_CmDeleteInstallerClass<br>_CmDeleteInstallerClassWorker<br>_CmDeleteInterfaceClass<br>_CmDeleteInterfaceClassWorker<br>_CmDevicePanelEnumSubkeyCallback<br>_CmEnumDevicesInContainerWithCallback<br>_CmGetDeviceChildren<br>_CmGetDeviceContainerIdFromBase<br>_CmGetDeviceInterfaceMappedPropertyFromComposite<br>_CmGetDeviceInterfaceRegKeyPath<br>_CmGetDeviceInterfaceSubkeyPath<br>_CmGetDeviceMappedPropertyFromComposite<br>_CmGetDeviceMappedPropertyFromRegProp<br>_CmGetDeviceParent<br>_CmGetDeviceRegProp<br>_CmGetDeviceRegPropWorker<br>_CmGetDeviceSiblings<br>_CmGetDeviceSoftwareKey<br>_CmGetDeviceSoftwareKeyPath<br>_CmGetInstallerClassMappedPropertyFromRegValue<br>_CmGetInstallerClassRegProp<br>_CmGetMatchingCommonClassList<br>_CmGetMatchingDeviceContainerList<br>_CmGetMatchingDeviceInterfaceList<br>_CmGetMatchingDeviceList<br>_CmGetMatchingDevicePanelList<br>_CmGetMatchingFilteredDeviceInterfaceList<br>_CmGetMatchingFilteredDeviceList<br>_CmGetRegKeySecurityDescriptor<br>_CmIsDeviceSafeRemovalRequired<br>_CmIsLocalMachineContainer<br>_CmMatchLastKnownParentCallback<br>_CmOpenCommonClassRegKey<br>_CmOpenDeviceContainerRegKey<br>_CmOpenDeviceInterfaceRegKey<br>_CmOpenDevicePanelRegKey<br>_CmRemoveDeviceFromContainer<br>_CmRemovePanelDevice<br>_CmServiceFilterCallback<br>_CmSetDeviceMappedPropertyFromDriverKeyRegValue<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetDeviceRegProp<br>_CmSetInstallerClassRegProp<br>_CmSplitDevicePanelId<br>_CmValidateDeviceInterfaceName<br>_CmValidateDevicePanelName<br>_PnpCtxRegEnumKey<br>_PnpCtxRegQueryValue<br>_PnpDeviceRaisePropertyChangeEventWorker<br>_PnpGetEnumSecurityDescriptor<br>_PnpGetGenericStoreProperty<br>_PnpGetGenericStorePropertyKeys<br>_PnpGetGenericStorePropertyLocales<br>_PnpGetPropertiesSecurityDescriptor<br>_PnpIsValidGuidString<br>_PnpOpenPropertiesKey<br>_PnpRegQueryValueIndirect<br>_PnpSetGenericStoreProperty<br>_PnpSetPropertyWorker<br>_RegRtlCreateProtectedKeyTransacted<br>_RegRtlEnableThreadPrivileges<br>_RegRtlEnumKey<br>_RegRtlEnumKeyWithCallback<br>_RegRtlOpenProtectedKeyTransacted<br>_RegRtlQueryInfoKey<br>_RegRtlQueryValue<br>_RegRtlUnlockKey<br>_SysCtxOpenControlSet<br>_SysCtxOpenMachine<br>_SysCtxRegOpenCurrentUserKey<br>__GSHandlerCheckCommon<br>pSetupMakeSurePathExists<br>pSetupQueryValue<br>pSpUtilsOpenSetupKey<br>pSpUtilsSetLogPath<br>pSpUtilsSetLogPathFromRegKey<br>wil::GetFailureLogString<br>wil::ResultException::what<br>wil::details::GetModuleInformation<br>wil::details::PrintLoggingMessage<br>wil::details::ReportFailure_CaughtException<1><br>wil::details::ReportFailure_CaughtException<2><br>wil::details::ReportFailure_Msg<1><br>wil::details::ReportFailure_Msg<2><br>wil::details::ReportFailure_Return<1><br>wil::details::ReportFailure_Return<2><br>wil::details_abi::ProcessLocalStorageData<class_wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<struct_wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::RecordWnfUsageIndex<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::TryGetValueInternal<br>wil::details_abi::UsageIndexes::Record<br>wil_RtlStagingConfig_QueryFeatureState<br>wil_details_RecordCachedUsage<br>wil_details_WriteSRUMWnfUsageBuffer</details>|<details><summary>Expand for full list:<br><lambda_7bb9c142a194c58151fa833df3683c77>::operator()<br><lambda_81392fd9bbdbd32e6cf441e282163e42>::operator()<br>ActivateApp<br>AddDerivedKeysToListBasedOnSource<br>CAepStoreAccess::GetProperties<br>CHostContext::CreateHostProcess<br>CHostContext::CreateHostTokenAndSid<br>CQueryCallback::OnQueryResultUpdate<br>CQueryContext::AcquireResource<br>CQueryContext::AddNeedKeysAepContainers<br>CQueryContext::ExecuteFilter</summary>CQueryContext::GenerateResultKeys<br>CQueryContext::GetAepContainerChangedKeys<br>CQueryContext::GetAepContainerIdFromAep<br>CQueryContext::GetPropertyFromAepList<br>CQueryContext::MakeResult<br>CQueryContext::OnQueryStateUpdateWork<br>CQueryContext::PrefilterProvider<br>CQueryContext::ResourceWaitCallback<br>CQueryContext::UpdateAepEntry<br>CQueryContext::UpdateAepServiceEntry<br>CreateInboundContext<br>DAS::DevnodeManagment::DevnodeFactory::DevnodeFactory<br>DAS::DevnodeManagment::DevnodeFactory::GetDevnodeCreationInfo<br>DAS::DevnodeManagment::DevnodeFactory::MakeRestrictedSd<br>DAS::DevnodeManagment::DevnodeFactory::PersistDevnodeCreationInfo<br>DAS::DevnodeManagment::DevnodeFactory::StartDevnodeCreation<br>DAS::DevnodeManagment::DevnodeFactory::StartMakeDevnodeAvailable<br>DAS::DevnodeManagment::DevnodeManager::AddUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::CleanupStaleUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::CloseProvidersDevnodes<br>DAS::DevnodeManagment::DevnodeManager::Deactivate<br>DAS::DevnodeManagment::DevnodeManager::IsManagingDevnodes<br>DAS::DevnodeManagment::DevnodeManager::MakeMapKey<br>DAS::DevnodeManagment::DevnodeManager::RemoveUserDevnodes<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementForStore<br>DAS::DevnodeManagment::DevnodeManager::StartDevnodeManagementUnlocked<br>DAS::DevnodeManagment::DevnodeManager::StartWatchingUsers<br>DAS::DevnodeManagment::DevnodeManager::StopDevnodeManagement<br>DAS::DevnodeManagment::DevnodeManager::UninstallDevnodesDevObj<br>DAS::DevnodeManagment::DevnodeManager::UninstallDevnodesSetupDi<br>DAS::Dispatcher::Dispatch::DispatchThread<br>DAS::Dispatcher::DispatchedArgs::DispatchedArgs<br>DAS::Dispatcher::Watchdog::AddTimestamp<br>DAS::Dispatcher::Watchdog::CheckForStuckThreads<br>DAS::ProviderManagement::ProviderManager::ChangeTakeOwnershipPrivilege<br>DAS::ProviderManagement::ProviderManager::ForEach<br>DAS::ProviderManagement::ProviderManager::GenerateProviderStatic<br>DAS::ProviderManagement::ProviderManager::GetProviderFromAepId<br>DAS::ProviderManagement::ProviderManager::GetProviderFromProtocolId<br>DAS::ProviderManagement::ProviderManager::GetProvidersBySecurityContext<br>DAS::ProviderManagement::ProviderManager::ProcessRegChange<br>DAS::ProviderManagement::ProviderManager::UnregisterProvider<br>DafClass5GuidFromBlob<br>DafClass5GuidFromBlob<br>DafGetProvidersInfo<br>DafGetTypeFromId<br>DasCreateAssociationContextForApp<br>DasCreateAssociationContextFromOobBlob<br>DasCreateChallengeContext<br>DasCreateImportExportContext<br>DasEvaluateUserSessionStartTrigger<br>DasGenerateProvider<br>DasRegisterForInboundAssociationsAppActivation<br>DasRegisterProvider<br>DasSelectCeremony<br>DasStartEnumCeremonies<br>DasStartFinalize<br>DasStartReadCeremonyData<br>DasStartRemoveAssociation<br>DasStartWriteCeremonyData<br>DasStatusUpdate<br>DasStopTimerCallback<br>InitializeRpcServices<br>IsAepAssociatedShared<br>IsServiceSid<br>McTemplateU0p_EventWriteTransfer<br>McTemplateU0qqq_EventWriteTransfer<br>McTemplateU0zp_EventWriteTransfer<br>McTemplateU0zzqq_EventWriteTransfer<br>McTemplateU0zzqqq_EventWriteTransfer<br>McTemplateU0zzqtttztqq_EventWriteTransfer<br>McTemplateU0zzzqqq_EventWriteTransfer<br>OnEnumCeremoniesCompleteStub<br>OnFinalizeComplete<br>OnInitOobAssociationCompleteStub<br>OnReadCeremonyDataCompleteStub<br>OnRemoveComplete<br>OnWriteCeremonyDataCompleteStub<br>ProviderContext::MakeAndInitialize<br>RemoveProviderAssociations<br>RpcDevQueryCreate<br>SetAepStoreAccessSd<br>SpUtilsSetTargetWindowsDir<br>StartProviderQuery<br>TraceProcessName<br>ValidFilter<br>Windows::Devices::Pnp::Internal::PnpObjectStore::SetProperty<br>Windows::Devices::Pnp::Internal::PnpObjectStoreManager::GetStore<br>Windows::Devices::Pnp::Internal::`dynamic_initializer_for_'g_knownStores''<br>Windows::Foundation::Collections::Internal::detail::CreateExternalVector<struct_HSTRING__*___ptr64,class_Windows::Foundation::Collections::Internal::Vector<struct_HSTRING__*___ptr64,struct_Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<struct_HSTRING__*___ptr64>,struct_Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<struct_HSTRING__*___ptr64>,struct_Windows::Foundation::Collections::Internal::DefaultVectorOptions<struct_HSTRING__*___ptr64>_>_><br>_CmClassFilterCallback<br>_CmCreateDevice<br>_CmCreateDeviceInterface<br>_CmCreateDeviceInterfaceWorker<br>_CmCreateInstallerClass<br>_CmCreateInterfaceClass<br>_CmDeleteCommonClassRegKey<br>_CmDeleteDevice<br>_CmDeleteDeviceContainer<br>_CmDeleteDeviceContainerRegKey<br>_CmDeleteDeviceInterface<br>_CmDeleteDeviceInterfaceRegKey<br>_CmDeleteDeviceInterfaceWorker<br>_CmDeleteDeviceRegKey<br>_CmDeleteDeviceRegKeyWorker<br>_CmDeleteDeviceWorker<br>_CmDeleteInstallerClass<br>_CmDeleteInstallerClassWorker<br>_CmDeleteInterfaceClass<br>_CmDeleteInterfaceClassWorker<br>_CmDevicePanelEnumSubkeyCallback<br>_CmEnumDevicesInContainerWithCallback<br>_CmGetDeviceChildren<br>_CmGetDeviceContainerIdFromBase<br>_CmGetDeviceInterfaceMappedPropertyFromComposite<br>_CmGetDeviceInterfaceRegKeyPath<br>_CmGetDeviceInterfaceSubkeyPath<br>_CmGetDeviceMappedPropertyFromComposite<br>_CmGetDeviceMappedPropertyFromRegProp<br>_CmGetDeviceParent<br>_CmGetDeviceRegProp<br>_CmGetDeviceRegPropWorker<br>_CmGetDeviceSiblings<br>_CmGetDeviceSoftwareKey<br>_CmGetDeviceSoftwareKeyPath<br>_CmGetInstallerClassMappedPropertyFromRegValue<br>_CmGetInstallerClassRegProp<br>_CmGetMatchingCommonClassList<br>_CmGetMatchingDeviceContainerList<br>_CmGetMatchingDeviceInterfaceList<br>_CmGetMatchingDeviceList<br>_CmGetMatchingDevicePanelList<br>_CmGetMatchingFilteredDeviceInterfaceList<br>_CmGetMatchingFilteredDeviceList<br>_CmGetRegKeySecurityDescriptor<br>_CmIsDeviceSafeRemovalRequired<br>_CmIsLocalMachineContainer<br>_CmMatchLastKnownParentCallback<br>_CmOpenCommonClassRegKey<br>_CmOpenDeviceContainerRegKey<br>_CmOpenDeviceInterfaceRegKey<br>_CmOpenDevicePanelRegKey<br>_CmRemoveDeviceFromContainer<br>_CmRemovePanelDevice<br>_CmServiceFilterCallback<br>_CmSetDeviceMappedPropertyFromDriverKeyRegValue<br>_CmSetDeviceMappedPropertyFromRegProp<br>_CmSetDeviceRegProp<br>_CmSetInstallerClassRegProp<br>_CmSplitDevicePanelId<br>_CmValidateDeviceInterfaceName<br>_CmValidateDevicePanelName<br>_PnpCtxRegEnumKey<br>_PnpCtxRegQueryValue<br>_PnpDeviceRaisePropertyChangeEventWorker<br>_PnpGetEnumSecurityDescriptor<br>_PnpGetGenericStoreProperty<br>_PnpGetGenericStorePropertyKeys<br>_PnpGetGenericStorePropertyLocales<br>_PnpGetPropertiesSecurityDescriptor<br>_PnpIsValidGuidString<br>_PnpOpenPropertiesKey<br>_PnpRegQueryValueIndirect<br>_PnpSetGenericStoreProperty<br>_PnpSetPropertyWorker<br>_RegRtlCreateProtectedKeyTransacted<br>_RegRtlEnableThreadPrivileges<br>_RegRtlEnumKey<br>_RegRtlEnumKeyWithCallback<br>_RegRtlOpenProtectedKeyTransacted<br>_RegRtlQueryInfoKey<br>_RegRtlQueryValue<br>_RegRtlUnlockKey<br>_SysCtxOpenControlSet<br>_SysCtxOpenMachine<br>_SysCtxRegOpenCurrentUserKey<br>__GSHandlerCheckCommon<br>pSetupMakeSurePathExists<br>pSetupQueryValue<br>pSpUtilsOpenSetupKey<br>pSpUtilsSetLogPath<br>pSpUtilsSetLogPathFromRegKey<br>wil::GetFailureLogString<br>wil::ResultException::what<br>wil::details::GetModuleInformation<br>wil::details::PrintLoggingMessage<br>wil::details::ReportFailure_CaughtException<1><br>wil::details::ReportFailure_CaughtException<2><br>wil::details::ReportFailure_Msg<1><br>wil::details::ReportFailure_Msg<2><br>wil::details::ReportFailure_Return<1><br>wil::details::ReportFailure_Return<2><br>wil::details_abi::ProcessLocalStorageData<class_wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<struct_wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::RecordWnfUsageIndex<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::TryGetValueInternal<br>wil::details_abi::UsageIndexes::Record<br>wil_RtlStagingConfig_QueryFeatureState<br>wil_details_FeatureReporting_ReportUsageToServiceDirect<br>wil_details_RecordCachedUsage<br>wil_details_WriteSRUMWnfUsageBuffer</details>|
|paramcount|1|1|
|`address`|180029360|1800293f0|
|sig|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### __security_check_cookie Calling Diff


```diff
--- __security_check_cookie calling
+++ __security_check_cookie calling
@@ -210,0 +211 @@
+wil_details_FeatureReporting_ReportUsageToServiceDirect
```


## _PnpValidatePropertyData

### Match Info



|Key|pre.dll - post.dll|
| :---: | :---: |
|diff_type|refcount,length,address,called|
|ratio|0.25|
|i_ratio|0.09|
|m_ratio|0.93|
|b_ratio|0.09|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|pre.dll|post.dll|
| :---: | :---: | :---: |
|name|_PnpValidatePropertyData|_PnpValidatePropertyData|
|fullname|_PnpValidatePropertyData|_PnpValidatePropertyData|
|`refcount`|10|8|
|`length`|889|957|
|`called`|API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree<br>API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW|API-MS-WIN-CORE-HEAP-L2-1-0.DLL::LocalFree<br>API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL::ConvertStringSecurityDescriptorToSecurityDescriptorW<br>Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline|
|calling|ValidFilter<br>ValidateQueryData<br>_PnpGetObjectProperty<br>_PnpSetObjectProperty|ValidFilter<br>ValidateQueryData<br>_PnpGetObjectProperty<br>_PnpSetObjectProperty|
|paramcount|3|3|
|`address`|180008980|1800089a0|
|sig|undefined8 __fastcall _PnpValidatePropertyData(short * param_1, uint param_2, uint param_3)|undefined8 __fastcall _PnpValidatePropertyData(short * param_1, uint param_2, uint param_3)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### _PnpValidatePropertyData Called Diff


```diff
--- _PnpValidatePropertyData called
+++ _PnpValidatePropertyData called
@@ -2,0 +3 @@
+Feature_KernelPnP_PropertyValidation__private_IsEnabledDeviceUsageNoInline
```




<sub>Generated with `ghidriff` version: 1.0.0 on 2026-08-27T23:20:42</sub>