📁 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 Guest Tools
install.cmd on the VirtualProgTools disc sets up everything Windows needs for shared folders:
the VirtIO-FS driver, WinFsp, and a service that mounts Z: every time Windows starts.
- 💿 In the VM window toolbar, click Attach Disks and choose Install Guest Tools.
- 📂 In Windows, open the VirtualProgTools drive in File Explorer.
- 🚀 Double-click
install.cmdand allow the administrator prompt. - 🔄 Restart Windows if the installer asks you to.
Open File Explorer and check This PC for drive Z:. Each shared folder appears as a folder
inside it.
💡 WinFsp is downloaded from the WinFsp project during installation, so the VM needs internet access. If a step shows SKIP or FAIL, check the log at
%TEMP%\VirtualProgGuestTools.log(press Win + R, enter the path, and press Enter), then runinstall.cmdagain.
See Install Guest Tools for everything else install.cmd installs.
🔧 Manual Setup
⚠️ Skip this section if you ran
install.cmd. It already completed every step below.
Use these steps only to set up shared folders without install.cmd.
1️⃣ 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.
2️⃣ Install the VirtIO-FS Driver
The VirtIO-FS driver and virtiofs.exe come from the VirtualProgTools disc that VirtualProg
includes.
- In the VM window toolbar, click 💿 Attach Disks and choose Install Guest Tools.
- In Windows, open the VirtualProgTools drive 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:
3️⃣ 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.
4️⃣ Run as a Service
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= 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= automountsZ:as soon as Windows starts. The service waits for the VirtIO-FS device by itself. If you created the service withstart=delayed-auto,Z:appears about two minutes after startup; change it withsc.exe config VirtioFsVirtualProg start= 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 |
|---|---|
install.cmd shows SKIP or FAIL |
Open %TEMP%\VirtualProgGuestTools.log for details. Check the VM's internet access, then run install.cmd again. |
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 starts automatically (sc.exe qc VirtioFsVirtualProg shows AUTO_START) and that sc.exe query shows it running. 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. |