parsec-vdd
✨ 独立的Parsec虚拟显示
创建高达4K@240Hz的虚拟显示器
ℹ 关于
本项目展示了一种独立的解决方案,通过使用Parsec VDD创建虚拟显示器,而无需依赖Parsec应用程序。
虚拟显示驱动程序(VDD)是在Windows主机上启用虚拟显示器所必需的。虚拟显示是一项面向Teams和Warp用户的功能,允许您在通过Parsec连接到您拥有的机器时,为主机添加最多3个额外的虚拟显示器。
Parsec VDD是由Parsec开发的完美软件驱动程序。它利用IddCx API(间接显示驱动程序)在Windows 10+上创建虚拟显示器。这种虚拟显示器在物理显示器不可用或需要额外屏幕的情况下特别有用。
Parsec VDD的一个显著特点是支持广泛的分辨率和刷新率,包括高达4K和240Hz。这使其非常适合游戏,因为它可以提供高质量的视觉体验。它使用户能够模拟额外屏幕的存在或在没有物理显示器的情况下工作,提高了显示管理的灵活性和定制性。
📺 ParsecVDisplay应用程序
这是一个用C#和WPF编写的完整驱动程序应用程序,用于控制Parsec VDD。它可以显示已添加的虚拟显示器数量,允许添加多个虚拟显示器并移除特定选定的显示器。还允许更改分辨率和截图等功能。
👉 查看发布版本下载。
此应用程序的完整源代码位于app文件夹中。
🚀 使用核心API
设计说明
Parsec VDD被设计为与Parsec客户端连接会话一起工作。当用户连接到主机时,应用程序将开始控制驱动程序,发送IO控制码并获取结果。添加虚拟显示器时,您将获得其索引以用于拔插,每个适配器最多可添加16个显示器。您必须定期向驱动程序发送ping以保持添加的显示器活动,否则所有显示器将在一秒后被拔出。没有直接操作已添加显示器的方法,您应该调用Win32显示API来更改它们的显示模式(参见ParsecVDisplay源代码)。
flowchart LR
A(应用程序)
B(vdd)
A <--->|ioctl| B
A ..->|ping| B
B --- X(显示器1)
B --- Y(显示器2)
B --- Z(显示器3)
winapi -->|操作| X
使用代码
- 核心API被设计为单个C/C++头文件,可以添加到任何项目中,👉 core/parsec-vdd.h
- 还有一个简单的演示程序,👉 core/vdd-demo.cc
选择驱动程序
您必须安装驱动程序才能使其工作。
版本 | 最低操作系统 | IddCx | 注释 |
---|---|---|---|
parsec-vdd-0.38 | Windows 10 1607 | 1.0 | 已过时,可能会随机崩溃。 |
parsec-vdd-0.41 | Windows 10 19H2 | 1.4 | 稳定。 |
parsec-vdd-0.45 | Windows 10 21H2 | 1.5 | 更好的流媒体颜色,但可能在某些Windows上不工作。 |
所有这些驱动程序也适用于Windows Server 2019或更高版本。
您可以解压(使用7z)上述驱动程序安装程序以获取驱动程序文件和nefconw
命令行工具。
vdd-0.45/
|__ nefconw.exe
|__ driver/
|__ mm.cat
|__ mm.dll
|__ mm.inf
使用nefconw
安装驱动程序的命令行方法(需要管理员权限):
start /wait .\nefconw.exe --remove-device-node --hardware-id Root\Parsec\VDA --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318"
start /wait .\nefconw.exe --create-device-node --class-name Display --class-guid "4D36E968-E325-11CE-BFC1-08002BE10318" --hardware-id Root\Parsec\VDA
start /wait .\nefconw.exe --install-driver --inf-path ".\driver\mm.inf"
此外,你可以在静默模式下运行驱动程序安装程序以快速安装。
.\parsec-vdd-0.45.0.0.exe /S
😥 已知限制
此列表显示了Parsec VDD的已知限制。
1. HDR支持
Parsec VDD不支持其显示器上的HDR(请参阅下面的EDID)。理论上,你可以通过编辑EDID,然后添加HDR元数据并设置10位+色深来解锁支持。不幸的是,你无法像物理设备那样刷新其固件,或修改注册表值。
所有IDD在驱动程序二进制文件中都有自己固定的EDID块,用于初始化显示器规格。因此,解决方案是修改驱动程序DLL(mm.dll)中的这个块,然后使用nefconw
命令行工具重新安装(见上文)。
2. 自定义分辨率
在连接之前,虚拟显示器会在HKEY_LOCAL_MACHINE\SOFTWARE\Parsec\vdd
注册表中查找额外的预设分辨率。目前最多支持5个值。
SOFTWARE\Parsec\vdd
key: 0 -> 5 | (width, height, hz)
要解锁这个限制,你需要以同样的方式修补驱动程序DLL,但5个足够个人使用。
😑 已知问题
这是使用独立Parsec VDD时的已知问题列表。
1. 与Parsec隐私模式不兼容
如果你在Parsec主机设置中启用了"隐私模式",请禁用它并清除以下注册表路径中的已连接显示器配置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity
此选项会在添加虚拟显示器时关闭主显示器,导致难以打开显示器并中断远程桌面会话。
2. // 待办
🤔 与其他IDD的比较
下表显示了与其他流行的间接显示驱动程序项目的比较。
项目 | Iddcx版本 | 已签名 | 游戏 | HDR | H-光标 | 可调整 | 控制器 |
---|---|---|---|---|---|---|---|
usbmmidd_v2 | ✅ | ❌ | ❌ | ❌ | |||
IddSampleDriver | 1.2 | ❌ | ❌ | ❌ | ❌ | ||
RustDeskIddDriver | 1.2 | ❌ | ❌ | ❌ | ❌ | ||
Virtual-Display-Driver (HDR) | 1.10 | ❌ | ✅ | ❌ | |||
virtual-display-rs | 1.5 | ❌ | ❌ | #81 | ✅ | ✅ | |
parsec-vdd | 1.5 | ✅ | ✅ | ❌ | ✅ | 🆗 | ✅ |
✅ - 完全支持,🆗 - 有限支持
已签名表示驱动程序文件具有有效的数字签名。H-光标表示硬件光标支持,没有它你将在一些远程桌面应用程序上看到双光标。可调整是自定义显示模式的能力。访问MSDN IddCx版本以查看最低支持的Windows版本。
📘 Parsec VDD规格
预设显示模式
以下所有显示模式均由驱动程序默认设置。
分辨率 | 常用名称 | 宽高比 | 刷新率 (Hz) |
---|---|---|---|
4096 x 2160 | DCI 4K | 1.90:1 (256:135) | 24/30/60/144/240 |
3840 x 2160 | 4K UHD | 16:9 | 24/30/60/144/240 |
3840 x 1600 | 超宽屏 | 24:10 | 24/30/60/144/240 |
3840 x 1080 | 超宽屏 | 32:9 (2x 16:9 FHD) | 24/30/60/144/240 |
3440 x 1440 | 21.5:9 (43:18) | 24/30/60/144/240 | |
3240 x 2160 | 3:2 | 60 | |
3200 x 1800 | 3K | 16:9 | 24/30/60/144/240 |
3000 x 2000 | 3:2 | 60 | |
2880 x 1800 | 2.8K | 16:10 | 60 |
2880 x 1620 | 2.8K | 16:9 | 24/30/60/144/240 |
2736 x 1824 | 60 | ||
2560 x 1600 | 2K | 16:10 | 24/30/60/144/240 |
2560 x 1440 | 2K | 16:9 | 24/30/60/144/240 |
2560 x 1080 | 超宽屏 | 21:9 | 24/30/60/144/240 |
2496 x 1664 | 60 | ||
2256 x 1504 | 60 | ||
2048 x 1152 | 60/144/240 | ||
1920 x 1200 | FHD | 16:10 | 60/144/240 |
1920 x 1080 | FHD | 16:9 | 24/30/60/144/240 |
1800 x 1200 | FHD | 3:2 | 60 |
1680 x 1050 | HD+ | 16:10 | 60/144/240 |
1600 x 1200 | HD+ | 4:3 | 24/30/60/144/240 |
1600 x 900 | HD+ | 16:9 | 60/144/240 |
1440 x 900 | HD | 16:10 | 60/144/240 |
1366 x 768 | 60/144/240 | ||
1280 x 800 | HD | 16:10 | 60/144/240 |
1280 x 720 | HD | 16:9 | 60/144/240 |
注意事项:
- 低端显卡,如GTX 1650,不支持最高的DCI 4K。
- 所有分辨率都兼容60 Hz刷新率。
适配器信息
- 名称:
Parsec虚拟显示适配器
- 硬件ID:
Root\Parsec\VDA
- 适配器GUID:
{00b41627-04c4-429e-a26e-0265cf50c8fa}
- 类GUID:
{4d36e968-e325-11ce-bfc1-08002be10318}
显示器信息
- ID:
PSCCDD0
- 名称:
ParsecVDA
- EDID:
00 FF FF FF FF FF FF 00 42 63 D0 CD ED 5F 84 00
11 1E 01 04 A5 35 1E 78 3B 57 E0 A5 54 4F 9D 26
12 50 54 27 CF 00 71 4F 81 80 81 40 81 C0 81 00
95 00 B3 00 01 01 86 6F 80 A0 70 38 40 40 30 20
35 00 E0 0E 11 00 00 1A 00 00 00 FD 00 30 A5 C1
C1 29 01 0A 20 20 20 20 20 20 00 00 00 FC 00 50
61 72 73 65 63 56 44 41 0A 20 20 20 00 00 00 10
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 C6
02 03 10 00 4B 90 05 04 03 02 01 11 12 13 14 1F
8A 4D 80 A0 70 38 2C 40 30 20 35 00 E0 0E 11 00
00 1A FE 5B 80 A0 70 38 35 40 30 20 35 00 E0 0E
11 00 00 1A FC 7E 80 88 70 38 12 40 18 20 35 00
E0 0E 11 00 00 1E A4 9C 80 A0 70 38 59 40 30 20
35 00 E0 0E 11 00 00 1A 02 3A 80 18 71 38 2D 40
58 2C 45 00 E0 0E 11 00 00 1E 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A6
访问 http://www.edidreader.com/ 在线查看或使用高级工具 AW EDID 编辑器