📁 Windows Shared Folders
Share folders from your Mac with a Windows 11 ARM64 VM. All shared folders appear under one
drive letter, Z:, with one folder per share.
💡 This guide applies to Windows 11 ARM64 VMs in the VirtualProg Mac app.
✅ Before You Start
- ✔️ The VM must be Windows 11 ARM64.
- ✔️ You need Administrator access inside Windows.
- ✔️ Windows must be running to mount a shared folder.
- 🔄 You can add or remove folders while the VM is running. See Runtime Changes below.
1️⃣ Add the Shared Folder on the Mac
- ⏹️ Stop the VM. Open its Configuration, click +, and choose Shared Folder.
- 📂 Choose the folder on your Mac, and enter a Mount Name (for example
Downloads). - ✏️ Leave Read-Only off if you want Windows to write files.
- ▶️ Save the configuration, then start the VM.
Add more folders the same way. Each folder appears inside Z: under its Mount Name. All folders
share one VirtIO-FS device, so you mount Z: once.
2️⃣ Install WinFsp
WinFsp is the user-mode file system that VirtIO-FS uses inside Windows.
- In Windows, download the latest WinFsp installer from github.com/winfsp/winfsp/releases.
- Run the installer and keep the default options.
- Restart Windows if the installer asks you to.
3️⃣ Install the VirtIO-FS Driver
The VirtIO-FS driver and virtiofs.exe come from the virtio-win ISO that VirtualProg
bundles.
- Check that the virtio-win CD is attached to the VM. In VirtualProg, open the VM's
Configuration and check the CD/DVD section. If it is not there, add
virtio-win.iso. - Open the CD in File Explorer.
- Copy the
viofs\w11\ARM64folder toC:\Program Files\viofs. The folder must containvirtiofs.exe,viofs.sys, andviofs.inf. - Right-click Start and choose Device Manager.
- Expand Other devices, right-click Mass Storage Folder, and choose Update driver.
- Choose Browse my computer for drivers, click Browse…, select
C:\Program Files\viofs, and click Next. Do not tick Include subfolders. - Allow the installation if Windows asks. The Mass Storage Folder entry moves out of Other devices.
- Restart Windows if prompted.
Check that the files are in place in an Administrator Command Prompt:
4️⃣ Mount a Shared Folder
Open an Administrator Command Prompt and run:
-m Z:is the drive letter to use.-t VirtualProgis the tag VirtualProg uses for its shared folders. Keep it exactly as shown.
The command keeps running while the drive is mounted. Open a second window to use the drive, or
close the first to unmount it. Then open File Explorer and check This PC for drive Z:.
Each shared folder appears as a folder inside Z:.
💡 To see log output while you troubleshoot, add
-d -1 -D -. This prints debug output to the console.
5️⃣ Run as a Service (Recommended) ⭐
We recommend running the service so the drive mounts automatically every time Windows starts, without keeping a Command Prompt open. Run this once:
sc.exe create VirtioFsVirtualProg binPath="C:\Program Files\viofs\virtiofs.exe -m Z: -t VirtualProg" start=delayed-auto depend="WinFsp.Launcher" DisplayName= "VirtIO-FS VirtualProg"
sc.exe failure VirtioFsVirtualProg reset= 86400 actions= restart/5000/restart/5000/restart/30000
sc.exe start VirtioFsVirtualProg
Check that the service is running:
Notes:
- Keep the spaces after
=insc.execommands. They are required. start=delayed-autostarts the service after the other boot services, so the VirtIO-FS driver is ready first. If you already created the service withstart=auto, change it withsc.exe config VirtioFsVirtualProg start= delayed-auto.sc.exe failurerestarts the service if it exits early, for example when the driver is not ready yet.depend= WinFsp.Launchermakes the service start after WinFsp.- To remove the service, stop it first with
sc.exe stop VirtioFsVirtualProg, then runsc.exe delete VirtioFsVirtualProg.
🔄 Runtime Changes
You can add or remove shared folders while the VM is running. Use the Shared Folders button in the VM window toolbar, the same as on Mac and Linux VMs.
| Action | How | Notes |
|---|---|---|
| ➕ Add | Choose a folder on the Mac and enter a Mount Name. | Press F5 in File Explorer to show it inside Z:. |
| ➖ Remove | Select the folder and detach it. | Press F5 in File Explorer to refresh. Detach is refused while Windows has files from that folder open. Close them, then try again. |
⚠️ Runtime folders last only for the current session. They are not saved to the configuration and are removed when the VM stops. To keep a folder, add it in Configuration while the VM is stopped.
📥 Drag and Drop Files
Drag files or folders from Finder onto the VM window to copy them into a writable shared folder.
- ✅ One writable folder: items are copied there immediately.
- 🗂️ Several writable folders: a picker lets you choose the destination.
- 🚫 No writable folders: the window shows a red overlay and an alert explains how to add one.
Read-only folders are not available as drop targets. Runtime folders are included.
🛠️ Troubleshooting
| Problem | What to check |
|---|---|
Z: is empty |
Check that the VM was stopped and started after adding the folder, and that -t VirtualProg is correct. |
A folder is missing inside Z: |
Check that its Mount Name is valid (no /, not . or ..) and not duplicated. |
| Writes fail with "device not functioning" | Check that the shared folder is not Read-Only in VirtualProg, then restart the VM. |
| Drive does not appear after reboot | Check that the service is delayed-auto (sc.exe qc VirtioFsVirtualProg) and running with sc.exe query. Then restart the VM. |
| Cannot move a file between two shared folders | Each folder is a separate share. Copy the file, then delete the original. |
| Command fails with "not found" | Check the path to virtiofs.exe and that the viofs\w11\ARM64 folder was copied. |