The registry keys and procedures described below are intended only for the latest Windows 11 versions 24H2/25H2 builds and Windows Server 2025. These settings are not supported on older Windows 11 builds, Windows 10, or Windows Server 2022, as those operating systems lack the necessary underlying feature. For older OS versions, continue using the standard NVMe drivers.
I found the registry info in this tweet.
Warning
Editing the Windows Registry can cause system instability or data loss if not performed correctly. Before making any changes, always back up your registry and important data. To back up the registry, open Registry Editor, select “File” > “Export,” and save the backup in a secure location.
Unfortunately, this made no difference. Next, I cleared the cache of my Teams client, but this also did not improve the audio quality.
Enable the tweak
Because I want to have this in Microsoft Intune, I created the tweak as an Intune Check/Remediation:
Check Script
# Check: Enabling NVME native drivers in Win 11
# Check-EnablingNvmeNativeDrivers.ps1
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides'
try
{
if (!(Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue))
{
$RegPath = $null
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '735209102' -ErrorAction SilentlyContinue) -eq 1))
{
$RegPath = $null
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '1853569164' -ErrorAction SilentlyContinue) -eq 1))
{
$RegPath = $null
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '156965516' -ErrorAction SilentlyContinue) -eq 1))
{
$RegPath = $null
exit 1
}
}
catch
{
$RegPath = $null
exit 1
}
$RegPath = $null
exit 0
If you plan to apply it directly, not with Intune, you can skip the check if you like.
Remediation Script
# Remediate: Enabling NVME native drivers in Win 11
# Remediate-EnablingNvmeNativeDrivers.ps1
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides'
if ((Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue) -ne $true)
{
$paramNewItem = @{
Path = $RegPath
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
}
$null = (New-Item @paramNewItem)
$paramNewItem = $null
}
$paramNewItemProperty = @{
LiteralPath = $RegPath
Name = '735209102'
Value = 1
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty)
$paramNewItemProperty = $null
$paramNewItemProperty = @{
LiteralPath = $RegPath
Name = '1853569164'
Value = 1
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty)
$paramNewItemProperty = $null
$paramNewItemProperty = @{
LiteralPath = $RegPath
Name = '156965516'
Value = 1
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty)
$paramNewItemProperty = $null
$RegPath = $null
This will apply the changes
Take if further
But there are a few more NVME tweaks that you might want wo apply.
Check Script for all Tweaks
# Check: Some relatively aggresiv NVME tweaks for Windows 11
# Check-NVMETweaks.ps1
try
{
#region ServicesstornvmeParameters
# Source: https://github.com/AlchemyTweaks/Verified-Tweaks/tree/main/NVME
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters'
if (!(Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'QueueDepth' -ErrorAction SilentlyContinue) -eq 64))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NvmeMaxReadSplit' -ErrorAction SilentlyContinue) -eq 4))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NvmeMaxWriteSplit' -ErrorAction SilentlyContinue) -eq 4))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ForceFlush' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ImmediateData' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxSegmentsPerCommand' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxOutstandingCmds' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ForceEagerWrites' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxQueuedCommands' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxOutstandingIORequests' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NumberOfRequests' -ErrorAction SilentlyContinue) -eq 1500))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'IoSubmissionQueueCount' -ErrorAction SilentlyContinue) -eq 3))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'IoQueueDepth' -ErrorAction SilentlyContinue) -eq 64))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'HostMemoryBufferBytes' -ErrorAction SilentlyContinue) -eq 1500))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ArbitrationBurst' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
#endregion ServicesstornvmeParameters
#region ControlStorNVMeParametersDevice
# Source: https://github.com/AlchemyTweaks/Verified-Tweaks/tree/main/NVME
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\StorNVMe\Parameters\Device'
if (!(Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'QueueDepth' -ErrorAction SilentlyContinue) -eq 64))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NvmeMaxReadSplit' -ErrorAction SilentlyContinue) -eq 4))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NvmeMaxWriteSplit' -ErrorAction SilentlyContinue) -eq 4))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ForceFlush' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ImmediateData' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxSegmentsPerCommand' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxOutstandingCmds' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ForceEagerWrites' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxQueuedCommands' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'MaxOutstandingIORequests' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'NumberOfRequests' -ErrorAction SilentlyContinue) -eq 1500))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'IoSubmissionQueueCount' -ErrorAction SilentlyContinue) -eq 3))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'IoQueueDepth' -ErrorAction SilentlyContinue) -eq 64))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'HostMemoryBufferBytes' -ErrorAction SilentlyContinue) -eq 1500))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name 'ArbitrationBurst' -ErrorAction SilentlyContinue) -eq 256))
{
exit 1
}
#endregion ControlStorNVMeParametersDevice
#region MicrosoftFeatureManagementOverrides
<#
Enable NVME native drivers in Windows 11
Source: https://x.com/pureplayerpc/status/2002980378013786329
Can significantly increase Read/Write/Seq/Rnd and can only be used with Windows 11 25H2, or later
Experimental - Can brick Windows or third-party storage software
#>
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides'
if (!(Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '735209102' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '1853569164' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
if (!((Get-ItemPropertyValue -LiteralPath $RegPath -Name '156965516' -ErrorAction SilentlyContinue) -eq 1))
{
exit 1
}
#endregion MicrosoftFeatureManagementOverrides
}
catch
{
exit 1
}
exit 0
Remediation Script for all Tweaks
# Remediate: Some relatively aggresiv NVME tweaks for Windows 11
# Remediate-NVMETweaks.ps1
#region ServicesstornvmeParameters
# Source: https://github.com/AlchemyTweaks/Verified-Tweaks/tree/main/NVME
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters'
if ((Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue) -ne $true)
{
$paramNewItem = @{
Path = $RegPath
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-Item @paramNewItem)
$paramNewItem = $null
}
$paramNewItemProperty = @{
LiteralPath = $RegPath
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty -Name 'QueueDepth' -Value 64)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NvmeMaxReadSplit' -Value 4)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NvmeMaxWriteSplit' -Value 4)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ForceFlush' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ImmediateData' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxSegmentsPerCommand' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxOutstandingCmds' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ForceEagerWrites' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxQueuedCommands' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxOutstandingIORequests' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NumberOfRequests' -Value 1500)
$null = (New-ItemProperty @paramNewItemProperty -Name 'IoSubmissionQueueCount' -Value 3)
$null = (New-ItemProperty @paramNewItemProperty -Name 'IoQueueDepth' -Value 64)
$null = (New-ItemProperty @paramNewItemProperty -Name 'HostMemoryBufferBytes' -Value 1500)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ArbitrationBurst' -Value 256)
$paramNewItemProperty = $null
#endregion ServicesstornvmeParameters
#region ControlStorNVMeParametersDevice
# Source: https://github.com/AlchemyTweaks/Verified-Tweaks/tree/main/NVME
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\StorNVMe\Parameters\Device'
if ((Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue) -ne $true)
{
$paramNewItem = @{
Path = $RegPath
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-Item @paramNewItem)
$paramNewItem = $null
}
$paramNewItemProperty = @{
LiteralPath = $RegPath
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty -Name 'QueueDepth' -Value 64)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NvmeMaxReadSplit' -Value 4)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NvmeMaxWriteSplit' -Value 4)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ForceFlush' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ImmediateData' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxSegmentsPerCommand' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxOutstandingCmds' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ForceEagerWrites' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxQueuedCommands' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'MaxOutstandingIORequests' -Value 256)
$null = (New-ItemProperty @paramNewItemProperty -Name 'NumberOfRequests' -Value 1500)
$null = (New-ItemProperty @paramNewItemProperty -Name 'IoSubmissionQueueCount' -Value 3)
$null = (New-ItemProperty @paramNewItemProperty -Name 'IoQueueDepth' -Value 64)
$null = (New-ItemProperty @paramNewItemProperty -Name 'HostMemoryBufferBytes' -Value 1500)
$null = (New-ItemProperty @paramNewItemProperty -Name 'ArbitrationBurst' -Value 256)
$paramNewItemProperty = $null
#endregion ControlStorNVMeParametersDevice
#region MicrosoftFeatureManagementOverrides
<#
Enable NVME native drivers in Windows 11
Source: https://x.com/pureplayerpc/status/2002980378013786329
Can significantly increase Read/Write/Seq/Rnd and can only be used with Windows 11 25H2, or later
Experimental - Can brick Windows or third-party storage software
#>
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides'
if ((Test-Path -LiteralPath $RegPath -ErrorAction SilentlyContinue) -ne $true)
{
$paramNewItem = @{
Path = $RegPath
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-Item @paramNewItem)
$paramNewItem = $null
}
$paramNewItemProperty = @{
LiteralPath = $RegPath
PropertyType = 'DWord'
Force = $true
Confirm = $false
ErrorAction = 'SilentlyContinue'
WarningAction = 'SilentlyContinue'
}
$null = (New-ItemProperty @paramNewItemProperty -Name '735209102' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name '1853569164' -Value 1)
$null = (New-ItemProperty @paramNewItemProperty -Name '156965516' -Value 1)
$paramNewItemProperty = $null
#endregion MicrosoftFeatureManagementOverrides
Conclusion
By carefully following these tweaks, you can enable native NVMe drivers in Windows 11 (only with the latest 24H2/25H2 releases) and Windows Server 2025, enhancing storage performance and reliability.
Always exercise caution when editing the registry, and ensure backups are in place to prevent accidental data loss.
All the sources are mentioned in the scripts (as far as I remember them).
All Scripts can also be found here.
