HomeNewsletterCommunityMVP FeedToolsArchiveBlogToday's NewsAboutServicesQuick Links Subscribe free
← Back to Blog
Windows 11 Windows 11Dev DriveReFSMicrosoft DefenderPerformance ModeFilter ManagerMinifiltersGroup PolicyIntunefsutilPowerShellEndpoint Security

Dev Drive on Windows 11: a ReFS volume with a different antivirus model, and the security tradeoff nobody reads

IA
Imran Awan
21 August 2026

A developer opens a ticket. Builds are slow. Someone links a Microsoft blog post about Dev Drive, the numbers look good, and the ticket gets closed with "enable Dev Drive". Three weeks later a new volume exists on forty laptops, and nobody in the security team has been told what it is.

Here is the thing worth understanding before you approve that ticket. Dev Drive is not a tuning flag. It is a different file system, with a deliberately reduced set of file system filters attached, and a Microsoft Defender Antivirus scanning model that is genuinely different from the one running on C:. Every one of those changes is documented, supported and reversible. But they are changes to how a whole volume is protected. That is a security decision, not a performance decision. This post walks through exactly what Dev Drive is, what Windows does differently on it, and the policy surfaces you use to decide the posture rather than inherit it.

The short version

A Dev Drive is a ReFS volume created at format time, marked trusted in the registry, on which Filter Manager detaches every file system minifilter except antivirus filters. When the volume is trusted, Microsoft Defender Antivirus switches to performance mode for that volume, which defers the scan until after the file open completes instead of blocking on it. That is materially different from a folder exclusion, which skips the scan entirely, and Microsoft says so explicitly. The management surface is three registry values under one Policies key, two Administrative Templates settings under System then Filesystem, one Defender setting under Real-time Protection, and the fsutil devdrv command family.

The problem: a build volume your baseline has never seen

Let me start with what a Dev Drive actually is, in plain English, because the name is unhelpful.

A storage volume is the thing that decides how files and directories are laid out on disk. Windows uses NTFS, the New Technology File System, for the system drive and for most fixed drives by default. ReFS, the Resilient File System, is a newer Microsoft file system format. Microsoft describes it as designed to maximise data availability, scale efficiently to large data sets, and provide data integrity with resiliency to corruption.

A Dev Drive is a volume you format as ReFS, using a specific switch, on a machine where the feature is enabled. Microsoft's own wording is that Dev Drive "builds on ReFS technology to employ targeted file system optimizations and provide more control over storage volume settings and security, including trust designation, antivirus configuration, and administrative control over what filters are attached."

Read that list again. Trust designation. Antivirus configuration. Administrative control over what filters are attached. Those are the three security properties this feature exists to change. The performance improvement is the outcome. Changing those three things is the mechanism.

Context: what a "filter" means here. A file system minifilter is a driver that sits in the I/O path above the file system and gets to see, and optionally block or modify, file operations. Antivirus real-time protection is a minifilter. So is Windows Defender Application Control managed installer tracking, so is Process Monitor, so is the driver that makes containers work. Filter Manager, the Windows component that loads them, assigns each one an "altitude" number that fixes the order they run in. On a Dev Drive, Filter Manager attaches far fewer of them than on C:. That is by design, not a bug.

So here are the four concrete gaps between what your security baseline assumes and what a Dev Drive delivers.

One: it is not NTFS. Anything in your estate that assumes NTFS semantics on a fixed volume can behave differently. ReFS does not support several NTFS features. I list the documented ones below, because one or two of them will surprise you.

Two: most of your minifilters are not there. Microsoft documents the default plainly. Filter Manager turns off all filters on a Dev Drive, with the exception of antivirus filters. Not "some". All of them, except the ones in the antivirus altitude range. If a security product of yours works by attaching a minifilter, and that filter is not an antivirus-altitude filter, it does not see that volume until an administrator explicitly allows it.

Three: Defender scans differently. On a trusted Dev Drive, Microsoft Defender Antivirus runs in performance mode. Real-time protection is still on, but the scan happens after the open completes rather than before. Microsoft's summary of the two states is literally "open now, scan now" versus "open now, scan later".

Four: a local administrator can turn the antivirus filter off entirely. By default, and Microsoft states this in the enterprise guidance, "a local device administrator could configure the system to remove default antivirus filters, so that no antivirus filters are attached to the Dev Drive." One command does it. Unless you have set the policy that forbids it, that command works today on your managed devices.

Destructive risk: this is the sentence nobody reads. Microsoft's own warning is unambiguous: "Dev Drives can be run with no antivirus filters attached. Exercise extreme caution! Removing antivirus filters is a security risk and means that your storage drive will not be covered by the standard security scans." The command that does it is fsutil devdrv enable /disallowAv, it applies to every Dev Drive on the system, and it needs nothing more than local administrator rights. If your developers hold local admin, treat that as the real default until you have set the group policy that overrides it.

Why it happens: ReFS, Filter Manager and an asynchronous scan

Now the chain, in order, from the moment someone creates the volume to the moment a build runs on it. Each step is a place where you can intervene.

Step 1: creation. Dev Drive designation happens only at original format time. Microsoft is explicit that existing volumes cannot be converted. The person creating it must be a local administrator.

Step 2: the trusted flag. Microsoft documents that "Dev Drives are automatically designated as trusted using a flag stored in the system registry during the original formatting time". Trust is a per-machine property. It does not travel with the volume.

Step 3: mount, and the filter attach decision. When the volume mounts, Filter Manager decides which minifilters attach to it. Its default for a trusted Dev Drive is to attach nothing except antivirus-altitude filters. Microsoft defines that range precisely. An antivirus filter is one attached in the FSFilter Anti-Virus altitude range, 320000 to 329999. Anything else needs to be on an allow list.

Step 4: Defender reads the trust flag. A Dev Drive marked as trusted is, in Microsoft's words, "a signal for Microsoft Defender to run in performance mode." Real-time protection stays enabled on every other volume. An untrusted Dev Drive gets ordinary synchronous real-time protection.

Step 5: the build runs. File opens on that volume are scanned asynchronously. The build gets its speed from not waiting on the scan, and from ReFS-specific optimisations including block cloning, which since Windows 11 24H2 and Windows Server 2025 is supported on Dev Drive.

The drivers and binaries in the path

These are the actual files doing the work. Naming them matters, because they are what you look for when something does not behave.

FileWhat it isRole in this flow
C:\Windows\System32\drivers\refs.sysNT ReFS FS DriverThe ReFS file system driver. No refs.sys, no Dev Drive.
C:\Windows\System32\drivers\refsv1.sysNT ReFS FS DriverThe v1 ReFS driver, shipped alongside for older ReFS volume versions.
C:\Windows\System32\drivers\WdFilter.sysMicrosoft antimalware file system filter driverDefender's minifilter, at altitude 328010, inside the antivirus range. That is exactly why it attaches to a Dev Drive by default. Microsoft states it plainly: "The WdFilter is attached by default."
C:\Windows\System32\fsutil.exeFile system utilityHosts the devdrv verb: query, trust, untrust, enable, disable, setFiltersAllowed, clearFiltersAllowed.
C:\Windows\System32\fltmc.exeFilter Manager controlLists registered filters with altitudes, and lists which instances are attached per volume. Your ground truth for what is actually protecting the volume.
C:\Windows\System32\refsutil.exeReFS utilityReFS salvage and repair tooling. Present on the device, but not part of the Dev Drive policy surface.

What performance mode does, and does not, do

This is the part most worth getting right, so I am going to quote Microsoft rather than paraphrase. Performance mode "reduces the performance impact of Microsoft Defender Antivirus scans for files stored on designated Dev Drive." The mechanism is stated as "deferring security scans until after the open file operation has completed, instead of performing the security scan synchronously while the file operation is being processed."

Performance mode stateScan typeSummary
Not enabled (Off)Synchronous, ordinary real-time protectionOpen now, scan now.
Enabled (On)AsynchronousOpen now, scan later.

Now the sentence that should end the "it is basically an exclusion" argument. Microsoft writes: "Deferring scans until after file open completes inherently provides faster performance, but with less protection. However, enabling performance mode provides significantly better protection than other performance tuning methods, such as using folder exclusions, which block security scans altogether."

So the honest summary is this. Less protection than synchronous real-time protection. More protection than an exclusion. There is a real window between the open completing and the scan finishing, and that window is the tradeoff you are accepting. Anyone telling you a Dev Drive is a free win has not read that paragraph. Anyone telling you it is the same as excluding a folder has not read it either.

Four documented limits on performance mode are worth writing into your own runbook.

ConstraintWhat Microsoft documents
It only works on a Dev Drive"performance mode can run only on Dev Drive". Enabling it changes nothing on volumes formatted FAT32 or NTFS, including the OS volume.
Real-time protection must be on"real-time protection must be turned on for performance mode to function." Turn real-time protection off and you do not get performance mode, you get nothing.
It does not fix high CPU or memory"Using performance mode doesn't apply to high cpu or high memory usage scenarios with Microsoft Defender Antivirus services". Microsoft points you at Performance Analyzer for that instead.
It is Defender-onlyMicrosoft states that with alternative antivirus programs, "Performance Mode will not be applied". Third-party antivirus filters still attach to a Dev Drive, but they run however they normally run.

Defender also has documented platform minimums for performance mode. Antimalware platform version 4.18.2303.8 or later, security intelligence version 1.385.1455.0 or later, and Defender as the primary antivirus solution.

Gotcha: trust does not travel, and neither does the filter policy. Microsoft documents that "the Dev Drive designation (including trust status and filter policies) is stored per-machine and does not transfer with the VHD file." Move a Dev Drive VHD to another machine and it mounts as an ordinary volume. That is a fail-safe direction, so it is good news for security, but it is a real support call. The developer swears their drive was fast on the old laptop and now it is not. Nothing is broken. It is untrusted. Microsoft separately advises that copying a VHD hosted on a fixed disk to another machine and continuing to use it as a Dev Drive is not recommended at all.

What you cannot do on a Dev Drive

Because a Dev Drive is ReFS, everything ReFS cannot do, a Dev Drive cannot do. Microsoft publishes a feature comparison. These are the rows marked unavailable on ReFS.

FeatureReFSNTFS
TransactionsNoYes
Object IDsNoYes
Offloaded Data Transfer (ODX)NoYes
Short namesNo, though Microsoft notes many are simulated through symlinksYes
Disk quotasNoYes
Supported on removable mediaNoYes
BootableNoYes
ShrinkingNoYes

Two of those bite in practice. No disk quotas means you cannot cap per-user consumption on a shared build box the way you would on NTFS. No shrinking means a Dev Drive partition you sized generously stays that size. Microsoft also documents that file system encryption on ReFS is available on Windows Server 2025 only, so do not plan around the Encrypting File System on a Windows 11 Dev Drive. BitLocker is a different story and works fine. Microsoft confirms a Dev Drive VHD is included in the BitLocker encryption of the hosting volume, and that you do not need to enable BitLocker on the mounted VHD separately.

Then there are the Dev Drive-specific restrictions, all documented.

RestrictionDetail
Cannot convert an existing volumeReformatting destroys the content. Preserving content while converting is not supported.
C: cannot be a Dev DriveMicrosoft states developer tools such as Visual Studio, MSBuild, the .NET SDK and the Windows SDK "should be stored on your C: drive and not in a Dev Drive."
No removable or hot-pluggable disksNeither a volume on one, nor a VHD hosted by one, can be designated a Dev Drive.
Dynamic Disks unsupportedMicrosoft recommends Storage Spaces instead.
Not for installing applications"We do not recommend installing applications on a Dev Drive."
WSL metadata mount option unsupportedMicrosoft notes the WSL metadata mount option is not supported on ReFS, so Linux permissions on Windows-hosted files need NTFS or the WSL virtual disk.

What belongs on it, per Microsoft

This is answered directly in the documentation, and it is a short list. Source code repositories and project files. Package caches. Build output and intermediate files. For anything else, Microsoft asks you to think first.

On installing developer tools and SDKs there, the guidance is to "evaluate the trade-offs associated with the system and asynchronous scanning to ensure it aligns with the security requirements of your device and organization", and to verify that performance mode meets your needs for handling binaries. So the answer to "should a Dev Drive hold only source code" is not a flat yes. It is: source, caches and build output are the intended contents, tools and SDKs belong on C:, and anything else is a decision you have to justify.

There is also a specific note for multi-user machines that IT should read twice: "IT Admins will want to create per-user Access Control List (ACL) folders for multi-user devices as a best practice to avoid EOP attacks." EOP there means elevation of privilege. A world-writable root on a volume with a reduced filter set is exactly the shape of problem that note is warning about.

Prerequisites, and why the feature may be missing

Microsoft lists the requirements to create one: Windows 11 build 10.0.22621.2338 or later, 16 GB of memory recommended with 8 GB as the minimum, a minimum of 50 GB free disk space, local administrator permissions, and availability on all Windows SKU versions. Note that last one. This is not an Enterprise-only feature. Pro and Home devices can create Dev Drives too.

The reason the option is often missing on a managed device has nothing to do with hardware. The Dev Drive enterprise guidance states: "Dev Drive will be automatically disabled for devices that have their Windows updates managed by policies." That is temporary enterprise feature control, holding the feature back until an administrator makes a decision.

Two important qualifications, and my task brief for this post had the first one wrong, so it is worth spelling out. Microsoft's temporary enterprise feature control reference lists Dev Drive with a "Feature update that ends temporary control" of Windows 11, version 23H2. So on a device that has taken the 23H2 feature update or later, Dev Drive is no longer held back by temporary control at all. The same table notes that Dev Drive "also has multiple permanent control", pointing at EnableDevDrive and DevDriveAttachPolicy. Practical translation: on 22H2 with updates managed by policy, the feature is off until you enable it. On 23H2 and later, it is available unless a policy says otherwise. Either way, the policy is the thing you should be setting, not the temporary control.

How to verify: fsutil, fltmc, Get-Volume and Get-MpPreference

Verification comes before configuration, because on this feature the intended posture and the actual posture drift easily. Four commands tell you everything. Run all of them elevated.

1. Ask the system what its Dev Drive policy is

The first command asks Windows, machine-wide, whether developer volumes are enabled at all, whether antivirus filters are forced on, and what the filter allow lists contain. Run it with no volume argument.

PowerShell - run elevated
fsutil devdrv query # Machine-wide Dev Drive policy. No volume argument means "tell me about the system". Developer volumes are enabled. Developer volumes are protected by antivirus filter. # HEALTHY-ish: enabled, and antivirus filters attach. Note what is MISSING: there is # no ", by group policy" on the end of line two, so this is the SYSTEM DEFAULT, not # an enforced policy. A local admin can still run /disallowAv and change it. # BROKEN would read: "Developer volumes are not protected by antivirus filter." # ENFORCED would read: "protected by antivirus filter, by group policy." # This is a genuine run on a managed Windows 11 Enterprise device, unredacted.

Read that output carefully. The phrase "by group policy" is the whole game. Microsoft's own enterprise documentation shows the enforced version of this output, and it includes two separate allow lists: "Filters allowed on any developer volume, by group policy:" followed by the policy-supplied filters, and "Filters allowed on any developer volume:" followed by the locally-set filters. If you only look at the second list you will miss what policy is doing.

2. Ask about a specific volume

Add a volume path and the command tells you whether that volume is a developer volume, whether it is trusted, and which filters are currently attached to it. This is the single most useful Dev Drive command there is.

PowerShell - run elevated
fsutil devdrv query C: # Asking about the system volume. C: can never be a Dev Drive. This is not a developer volume. # Genuine run. This is the correct and expected answer for C:. fsutil devdrv query D: # ILLUSTRATIVE from here down - shape taken from Microsoft's documented output, # because no Dev Drive exists on the device I ran this on. This is a trusted developer volume. Developer volumes are protected by antivirus filter, by group policy. Filters allowed on any developer volume, by group policy: MsSecFlt Filters allowed on any developer volume: FileInfo Filters currently attached to this developer volume: MsSecFlt, WdFilter, FileInfo # HEALTHY: "trusted" means performance mode is possible. "by group policy" means a # local admin cannot detach the antivirus filter. The last list is the truth - it is # what is ACTUALLY attached, not what is allowed. # BROKEN: "This is an untrusted developer volume" means no performance mode AND the # filter attach policy is not honoured for that volume at all.

That last point is easy to miss and it is documented in the fsutil devdrv reference: "The dev drive filter attach policy isn't honored for an untrusted dev drive." Untrusting a volume does not just cost you performance mode. It reverts the volume to ordinary filter behaviour.

3. Confirm the file system, and confirm what the filters are really doing

Get-Volume tells you the file system type. A Dev Drive reports ReFS. Then fltmc tells you which minifilters are attached where. Compare the Dev Drive against C: and the gap is the reduced protection you accepted.

PowerShell - run elevated
Get-Volume | Select-Object DriveLetter, FileSystem, FileSystemType, Size # FileSystemType is the field to read. A Dev Drive shows ReFS, everything else NTFS. DriveLetter FileSystem FileSystemType Size ----------- ---------- -------------- ---- C NTFS NTFS 1021821579264 # Genuine run, size unchanged, no identifiers present. One NTFS system volume only. fltmc instances -v C: # Everything attached to the system volume, with altitudes. Note the altitude column: # anything between 320000 and 329999 is an FSFilter Anti-Virus filter. Filter Altitude Instance Name -------------------- ------------ ---------------------- MsSecFlt 385600 MsSecFlt Instance WdFilter 328010 WdFilter Instance FileInfo 40500 FileInfo Instance # Genuine run, trimmed to three rows and third-party filter names removed. # WdFilter at 328010 sits inside the antivirus range, which is why it survives on a # Dev Drive. MsSecFlt at 385600 does NOT, which is why Defender for Endpoint's EDR # sensor filter has to be added to the allow list explicitly. # BROKEN on a Dev Drive: an empty instance list, or no WdFilter row.

Gotcha: the EDR sensor filter is not an antivirus filter. MsSecFlt is the Microsoft Defender for Endpoint EDR sensor filter, and Microsoft lists it in the Dev Drive filter table as a filter you may need. On the device I ran the commands above on, its altitude is 385600. That is well outside the 320000 to 329999 antivirus range, so the default Dev Drive policy detaches it. If you rely on Defender for Endpoint EDR telemetry for file activity, and you enable Dev Drive without adding MsSecFlt to the allow list, you have created a volume your EDR does not watch. Microsoft's own enterprise example allow list puts MsSecFlt in the group policy filter list for exactly this reason.

4. Confirm the Defender side

Performance mode has its own state, separate from the volume's trust state. Check both. The Defender module exposes it as a property, and the group policy writes a registry value.

PowerShell - run elevated
Get-MpPreference | Select-Object PerformanceModeStatus, DisableRealtimeMonitoring # PerformanceModeStatus is the Defender-side switch. It is NOT the volume trust flag. PerformanceModeStatus : 1 DisableRealtimeMonitoring : False # Genuine run. Read 1 as DISABLED. The numbering is counterintuitive, see below. $t = (Get-Command Set-MpPreference).Parameters['PerformanceModeStatus'].ParameterType [enum]::GetNames($t) | ForEach-Object { $_ + ' = ' + [int][enum]::Parse($t, $_) } # Do not guess the numbering - ask the cmdlet. This prints the real enum mapping. Enabled = 0 Disabled = 1 # Genuine run. Matches Microsoft's Defender CSP documentation, which states # 0 (Default) = performance mode is enabled, 1 = performance mode is disabled. # HEALTHY for a Dev Drive shop: 0. BROKEN: 1, or real-time monitoring True.

Yes, zero means enabled. It is the opposite of every other Defender toggle you know, and it catches people out in reporting queries. Microsoft's Defender configuration service provider documentation is explicit: value 0 is the default and means performance mode is enabled, value 1 means it is disabled.

Tip: how to find out which filters a scenario actually needs. Microsoft documents a clean procedure and it is better than guessing. Temporarily mark the Dev Drive as untrusted. Run the scenario. Note every filter that attached to the volume. Mark the Dev Drive as trusted again, then add those filters to the allow list for that volume. Finally, remove filters one at a time, checking the scenario still works, until you have the minimum set. That gives you a defensible allow list instead of pasting Microsoft's full example and hoping.

The registry surface

Three values drive Dev Drive policy, and they all live under one key. Both Microsoft's enterprise guidance and the FileSystem policy CSP reference name this key, and the Microsoft-supplied Administrative Template files on the device agree with it.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies
Value nameTypeMeaning
FsEnableDevDriveREG_DWORDBacks the Enable dev drive policy. 1 enables the ability to create and use developer volumes. Disabled means new ones cannot be created and existing ones mount as regular volumes. A reboot is required for the setting to take effect.
FltmgrDevDriveAllowAntivirusFilterREG_DWORDBacks the Let antivirus filter protect dev drives checkbox inside the Enable dev drive policy. Set it and the antivirus filter is forced to stay attached, even if a local administrator tries to detach it.
FltmgrDevDriveAttachPolicyREG_MULTI_SZBacks the Dev drive filter attach policy filter list. The named filters are allowed to attach on a Dev Drive in addition to the antivirus filter policy. A reboot is required.
Registry Editor - a fully configured Dev Drive policy
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies
FsEnableDevDrive  REG_DWORD  0x00000001 (1)
FltmgrDevDriveAllowAntivirusFilter  REG_DWORD  0x00000001 (1)
FltmgrDevDriveAttachPolicy  REG_MULTI_SZ  MsSecFlt WdFilter FileInfo
Illustrative, showing the shape of a configured device rather than a captured screen. Compare it with the run in the last section, where all three values are absent. Absent is not the same as safe. Absent means the system default applies, and the system default lets a local administrator change the antivirus filter policy.

Microsoft's own Configuration Manager example script in the Dev Drive enterprise guidance writes exactly these three values, with those exact types, which is a useful independent confirmation. Its example multi-string value is PrjFlt, MsSecFlt, WdFilter, bindFlt, wcifs, FileInfo.

The Defender performance mode policy writes somewhere else entirely. The Microsoft-supplied WindowsDefender.admx on a Windows 11 device maps the Configure performance mode status policy to this key and value.

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection
Value: DisableAsyncScanOnOpen (REG_DWORD)  Enabled = 0  Disabled = 1

Gotcha: that value name is read from the ADMX, not from a Microsoft article. Microsoft's performance mode article documents the policy by its display name, Configure performance mode status, and documents the CSP node and the PowerShell command, but it does not publish the registry value name. DisableAsyncScanOnOpen comes from the Microsoft-supplied C:\Windows\PolicyDefinitions\WindowsDefender.admx that ships with Windows 11, which is authoritative for what the policy writes. Treat it as verified for reading and reporting. I would still not build hard detection logic on an undocumented value name, because an undocumented name can change in any update. Query Get-MpPreference as your primary source and use the registry value as corroboration.

One more genuinely useful detail from that same ADMX file, in the policy's own explain text: "Performance mode requires the following policies also be enabled: 'Enable dev drive', and 'Dev drive filter attach policy'." So the three policies are not independent knobs. Defender's performance mode policy expects the two Filesystem policies to be enabled alongside it.

Event Viewer: be honest, there is no Dev Drive channel

I looked for one. Microsoft publishes no Event ID catalogue for Dev Drive, and there is no Dev Drive event log channel. What does exist is a Microsoft-Windows-ReFS/Operational channel and a Microsoft-Windows-ReFS provider, both present on a stock Windows 11 device, but Microsoft does not publish an Event ID catalogue for them either, and on the device I checked the channel held zero records. So do not plan a Dev Drive alert around it.

What you can legitimately monitor is the Defender channel, because Microsoft does publish those IDs. The channel name is stated once here, and every ID below is from Microsoft's Defender Antivirus event ID reference.

Applications and Services Logs > Microsoft > Windows > Windows Defender > Operational
Channel: Microsoft-Windows-Windows Defender/Operational
Event Viewer - Microsoft-Windows-Windows Defender/Operational
Level: Information  Event ID: 5007  Source: Windows Defender
MALWAREPROTECTION_CONFIG_CHANGED - The antimalware platform configuration changed. Old value: ... New value: ...
This is the event to watch. A change to performance mode is a Defender configuration change, so it lands here with an old and new value. Microsoft's own description adds the line worth quoting to your SOC: "If this event is unexpected, you should review the settings as the event might be the result of malware."
Event IDSymbolic nameWhy it matters for a Dev Drive
5007MALWAREPROTECTION_CONFIG_CHANGEDThe antimalware platform configuration changed. Your signal that someone altered performance mode or another Defender setting.
5000MALWAREPROTECTION_RTP_ENABLEDReal-time protection is enabled. Performance mode cannot function without it.
5001MALWAREPROTECTION_RTP_DISABLEDReal-time protection is disabled. On a Dev Drive estate this is a high-severity event, because it removes performance mode as well as real-time protection.
5004MALWAREPROTECTION_RTP_FEATURE_CONFIGUREDA real-time protection feature was configured. Performance mode is a real-time protection feature.
1116MALWAREPROTECTION_STATE_MALWARE_DETECTEDDetection. On a Dev Drive this may arrive after the file was already opened, which is the whole point of asynchronous scanning.
1117MALWAREPROTECTION_STATE_MALWARE_ACTION_TAKENAction taken on a detection. Pair it with 1116 to measure your real deferred-scan window.
1150MALWAREPROTECTION_SERVICE_HEALTHYService health. Confirms Defender is the running antivirus at all.
1151MALWAREPROTECTION_SERVICE_HEALTH_REPORTHealth report, including platform and signature versions you need for the performance mode minimums.

Log files, services and scheduled tasks: mostly a genuine no

I want to be straight about this rather than pad the section. Microsoft documents no Dev Drive log file. There is no %WINDIR%\Logs\DevDrive or equivalent. The only log path Microsoft publishes anywhere near this feature is the one written by its own example Configuration Manager script, C:\Windows\temp\ConfigDevDrive-<TimeStamp>.log, and that only exists if you actually run that script. Its healthy lines end in Success and its broken lines end in Failure, because the script compares the value it wrote against the value it reads back.

On services, there is no Dev Drive service. ReFS is a kernel driver, not a service. The service that matters to the Defender half is WinDefend, display name Microsoft Defender Antivirus Service, and it must be running for performance mode to mean anything. There is also a ReFsDedupSvc provider and channel present on Windows 11, tied to ReFS deduplication rather than to Dev Drive, and Microsoft documents deduplication as a Windows Server capability. Do not read its presence as a Dev Drive feature.

On scheduled tasks, there is no task under \Microsoft\Windows\ that drives Dev Drive. Nothing polls it, nothing re-applies it. The trust flag and the filter policy are read at volume mount time, which is why so many of these settings say a reboot or a dismount is required.

The fix: decide the posture, then enforce it with policy

The decision comes first, so let me give you a defensible default before the click paths.

If you manage developer devices and you want to allow Dev Drive, the posture I would argue for is: enable the feature by policy, force the antivirus filter to stay attached, define an explicit filter allow list that includes your EDR sensor filter, and leave Defender performance mode enabled. That gives your developers the asynchronous scan they actually came for, while removing the local administrator's ability to detach antivirus entirely and while keeping your EDR watching the volume. If you cannot commit to setting the allow list, do not enable the feature yet, because the default allow list is empty and the default local-admin freedom is wide.

Group Policy Editor, step by step

Both Dev Drive policies live in the same place. Here is the path.

Computer ConfigurationAdministrative TemplatesSystemFilesystem
  1. Open the Local Group Policy Editor, or edit a domain GPO in the Group Policy Management Console.
  2. Navigate to Computer Configuration then Administrative Templates then System then Filesystem.
  3. Open Enable dev drive and set it to Enabled. This is what lifts temporary enterprise feature control and lets developers create Dev Drives at all.
  4. In the same policy's Options pane, tick Let antivirus filter protect dev drives. This is the checkbox that stops a local administrator detaching antivirus. Leaving it unticked is what makes fsutil devdrv enable /disallowAv effective.
  5. Select Apply, then OK.
  6. Back in the Filesystem node, open Dev drive filter attach policy.
  7. Set it to Enabled and populate the Filter list with the filter names you have decided to allow. Microsoft's guidance is worth reading twice here: with the policy Enabled and no filter list, any filter can attach. With it Disabled, local administrators are not allowed to attach or detach filters at all.
  8. Select Apply, then OK, then reboot the device. Both policies document that a reboot is required.

The Defender performance mode policy is in a different tree entirely.

Computer ConfigurationAdministrative TemplatesWindows ComponentsMicrosoft Defender AntivirusReal-time Protection
  1. Navigate to Computer Configuration then Administrative Templates then Windows Components then Microsoft Defender Antivirus then Real-time Protection.
  2. Double-click Configure performance mode status.
  3. Select Enabled, then Apply, then OK.

Gotcha: that Defender template is newer than the feature. Microsoft notes that the updated Group Policy template Configure performance mode status, located under Real-Time Protection, "is only available after you install the Windows 11 2024 Update (24H2)". If you are managing older central store ADMX files you will not find the setting, and you will conclude it does not exist. Refresh your central store before you go looking.

Intune, step by step

The two Dev Drive policies are in the Settings Catalog, under the Administrative Templates surface, and Microsoft documents this path directly.

intune.microsoft.comDevicesWindowsConfiguration profilesCreate profile
  1. Sign in to the Microsoft Intune admin center.
  2. Go to Devices then Windows then Configuration profiles then Create profile.
  3. Set Platform to Windows 10 and later.
  4. Set Profile type to Settings catalog, then select Create.
  5. Give the profile a name and description, then select Next.
  6. In the settings picker, search for Dev Drive, or browse to Administrative Templates\System\Filesystem.
  7. Select Enable Dev Drive and its Let antivirus filter protect Dev Drives option, then Dev Drive filter attach policy and its Filter list.
  8. Configure each setting, then complete Scope tags and Assignments and select Create.

Under the covers these are ADMX-backed settings in the FileSystem policy CSP. If you would rather do it with a custom profile and OMA-URI, the two nodes are documented: ./Device/Vendor/MSFT/Policy/Config/FileSystem/EnableDevDrive and ./Device/Vendor/MSFT/Policy/Config/FileSystem/DevDriveAttachPolicy. Both are device scope, both are format chr, and Microsoft notes that ADMX-backed policies need the special SyncML format rather than a plain value.

Defender performance mode is the awkward one, so here is the honest answer. Microsoft's performance mode article documents Intune configuration by OMA-URI only, not by a Settings Catalog path.

intune.microsoft.comDevicesConfigurationCreateTemplatesCustom
  1. Go to Devices then Configuration then Create then New policy.
  2. Set Platform to Windows 10 and later and Profile type to Templates, then choose Custom.
  3. Add a row. Set OMA-URI to ./Device/Vendor/MSFT/Defender/Configuration/PerformanceModeStatus.
  4. Set Data type to Integer.
  5. Set Value to 0 to enable performance mode, which is also the documented default, or 1 to disable it.
  6. Complete Assignments and create the profile.

Get the polarity right before you assign this. On this node, 0 enables performance mode and 1 disables it. Microsoft's Defender CSP reference states it directly: 0 is the default and means performance mode is enabled, 1 means disabled. Every instinct built on other Defender settings will tell you 1 means on. If you push 1 across a developer population expecting to switch performance mode on, you will silently switch it off, builds will slow down, and nothing will log an error, because you asked for a valid supported configuration.

The filter allow list, and what to put in it

Setting the list from the command line is the fast path for a pilot ring. Microsoft's syntax is fsutil devdrv setFiltersAllowed [[/f] /volume <volume path>] "filter1, filter 2, ...". Without /volume it applies to every Dev Drive on the system, and with /f the volume is force-dismounted so the change takes effect immediately rather than at next mount.

These are the filters Microsoft documents for common scenarios. Pick from this list rather than inventing names.

ScenarioFilter name
GVFS, sparse enlistments of Windows, and Visual Studio Live Unit Testing (ProjFS dependency)PrjFlt
Microsoft Defender for Endpoint EDR sensorMsSecFlt
Windows Defender filterWdFilter (attached by default)
Running containers out of a Dev DrivebindFlt, wcifs
Windows Performance Recorder, and Resource Monitor file names in Disk ActivityFileInfo
Process Monitor from SysinternalsProcMon24
Windows upgrade, required if TEMP is moved to the Dev DriveWinSetupMon
WDAC managed installer tracking with AppLockerapplockerfltr

Tip: the Process Monitor filter name is not stable. Microsoft says so outright: the filter name for Process Monitor may change, and if ProcMon24 does not capture activity, run fltmc filters, find the actual Process Monitor filter name, and use that instead. This is a good habit for the whole list. Confirm every name against fltmc filters on a real device before you commit it to a policy, because a typo in the allow list fails silently. The filter simply does not attach.

And if you decide the answer is no

Declining Dev Drive is a legitimate outcome and it takes one setting. Set Enable dev drive to Disabled. Microsoft documents the effect precisely: disabling it disallows creation of new developer volumes, and existing developer volumes mount as regular volumes. Note the second half. Existing Dev Drives keep their data and keep working. They just stop being special, and every filter attaches to them again. That is a clean rollback path, which is more than many Windows features offer.

There is also a device-local equivalent, fsutil devdrv disable, with the same documented effect: "Existing dev drives will function as a regular volume i.e., all filters are allowed to attach." Use the policy, not the command, on managed devices. The command is a local setting a local administrator can undo.

Proof it worked: a read-only posture report

The gap this feature creates is between the posture you intended and the posture the device has. So the companion script for this post reports the second one. It answers: does a Dev Drive exist here, is it trusted, what file system is it, what is the machine-wide policy, which minifilters are actually attached to it versus to C:, and what is Defender's performance mode state.

It is strictly read-only. Every call is a query. It never creates, formats, trusts, untrusts, or reconfigures anything, and it fails loud with exit code 1 rather than printing a clean-looking report from a failed read. It needs no modules installed.

PowerShell - run elevated - genuine run, computer name redacted
.\Get-DevDrivePosture.ps1 ============================================================================== Dev Drive posture report ============================================================================== Computer : CONTOSO-1234 Operating system : Microsoft Windows 11 Enterprise Build : 10.0.26200.26200 Elevated session : True # Elevation is checked first and the script ABORTS if false. An unelevated run # would look clean because the data is missing, not because the posture is good. refs.sys : present, 10.0.26100.8875 (WinBuild.160101.0800) refsv1.sys : present, 10.0.26100.1 (WinBuild.160101.0800) WdFilter.sys : present, 4.18.25080.5 # HEALTHY: refs.sys present means Dev Drive is possible on this device at all. Policy key : HKLM:\SYSTEM\CurrentControlSet\Policies FsEnableDevDrive : not set (policy Not Configured on this device) FltmgrDevDriveAllowAntivirusFilter: not set (local admin may detach the antivirus filter) FltmgrDevDriveAttachPolicy : not set (no group policy filter allow list) # THIS is the finding. No policy is set, so nothing stops a local admin running # /disallowAv, and there is no allow list, so EDR filters would not attach. Developer volumes are enabled. Developer volumes are protected by antivirus filter. Dev Drive support : ENABLED Volume C: : file system NTFS Dev Drive : no (ordinary volume, all filters attach normally) This is not a developer volume. Filters on system volume C: : 12 # Filter names omitted here - the real list included third-party product filters. PerformanceModeStatus : 1 (Disabled (1 = Disabled)) Real-time protection : on DisableAsyncScanOnOpen : not set (Configure performance mode status is Not Configured) # Worth pausing on. Microsoft documents the DEFAULT as 0 = Enabled, and the group # policy value is not set on this device - yet the module reports 1 = Disabled. # Observed, not explained by the docs. It is exactly why you query the device # instead of assuming the documented default. Dev Drives found : 0 Antivirus filter forced by GPO : no - local admin can change it Result: no Dev Drive exists on this device. This report is READ-ONLY. Nothing was created, formatted, trusted, untrusted or reconfigured.

That is a real run, trimmed for length, with the computer name replaced and third-party filter names removed. Read it as a worked example of the gap this post is about. Dev Drive support is enabled on this device, no policy constrains it, no allow list exists, and Defender's performance mode reads as disabled while the governing policy value is not configured at all. Nobody decided any of that. It is simply what the defaults plus one tenant's Defender configuration add up to.

Three lines are the ones I would put on a dashboard. Antivirus filter forced by GPO tells you whether a developer with local admin can strip antivirus off the volume. Untrusted Dev Drives tells you which volumes are quietly not getting the performance they were built for. And the per-volume filter comparison, which lists what is attached to C: but not to the Dev Drive, tells you in one line exactly what security coverage you traded away.

Run it before you enable the feature, to establish a baseline. Run it after your policy lands, to prove the policy took effect. Run it on the first ticket that says "Dev Drive is slow", because the answer is usually that the volume is untrusted.

References

Microsoft-official sources, all verified against the live pages while writing this post.

Community deep-dives, each fetched and confirmed on-topic before citing.

AuthorPostWhy it is worth reading
Peter van der WoudeManaging security policies for Dev DriveWalks the Intune Settings Catalog side of the two Filesystem policies, and frames Dev Drive as a security policy question rather than a performance one. Published December 2023.
Anoop C NairEnable Disable Performance Mode For Dev Drive Protection In Windows 11Covers turning performance mode on and off from the Windows Security app and from the registry, which is the end-user-visible half of this feature. Published April 2024.

One last thought. The best argument for Dev Drive is not that it is fast. It is that it replaces the thing your developers were going to do anyway, which is ask for a folder exclusion. An exclusion turns scanning off. Performance mode defers it. If the choice on the table is those two, Microsoft's own documentation says which one is safer, and it is not the exclusion. Just make sure that the exchange is the one you actually made, and that a local administrator has not quietly made a different one on your behalf.

PowerShell — companion script

Download it from Imran76Awan/Windows-11-Scripts — no sign-in required. It is read-only: it reports and never changes a device or anything in Intune. Validate it in your own environment before relying on the output.

Get-DevDrivePosture.ps1 — Reports the ACTUAL security posture of every Dev Drive on this Windows 11 device.
View all scripts on GitHub
Was this post helpful?
React below — no account needed
Share this post
LinkedIn X / Twitter Reddit Bluesky

More from EndpointWeekly

Windows 11
Controlled folder access blocked your backup software: reading…
Microsoft Defender's controlled folder access blocks untrusted processes writing to…
Windows 11
Exploit Protection Mitigations: The Per-Process Hardening Nobody…
Exploit protection is the in-box successor to EMET, with twenty-two documented…
Windows 11
Attack Surface Reduction rules broke a line-of-business app:…
An ASR rule in Block mode kills an app and tells you nothing but a GUID. Here is the…