@@ -39,10 +39,6 @@ using namespace std::string_literals;
3939// Start of unaddressable memory if guest only supports the minimum 36-bit addressing.
4040#define MAX_36_BIT_PAGE_IN_MB (0x1000000000 / _1MB)
4141
42- // This device type is implemented by the external virtio-pmem vdev.
43- // {EDBB24BB-5E19-40F4-8A0F-8224313064FD}
44- DEFINE_GUID (VIRTIO_PMEM_DEVICE_ID, 0xEDBB24BB , 0x5E19 , 0x40F4 , 0x8A , 0x0F , 0x82 , 0x24 , 0x31 , 0x30 , 0x64 , 0xFD );
45-
4642// Version numbers for various functionality that was backported.
4743#define NICKEL_BUILD_FLOOR 22350
4844#define VIRTIO_SERIAL_CONSOLE_COBALT_RELEASE_UBR 40
@@ -53,6 +49,12 @@ DEFINE_GUID(VIRTIO_PMEM_DEVICE_ID, 0xEDBB24BB, 0x5E19, 0x40F4, 0x8A, 0x0F, 0x82,
5349#define WSLG_SHARED_MEMORY_SIZE_MB 8192
5450#define PAGE_SIZE 0x1000
5551
52+ // WSL-specific virtio device class IDs.
53+ DEFINE_GUID (VIRTIO_FS_ADMIN_CLASS_ID, 0x7E6AD219 , 0xD1B3 , 0x42D5 , 0xB8 , 0xEE , 0xD9 , 0x63 , 0x24 , 0xE6 , 0x4F , 0xF6 ); // {7E6AD219-D1B3-42D5-B8EE-D96324E64FF6}
54+ DEFINE_GUID (VIRTIO_FS_CLASS_ID, 0x60285AE6 , 0xAAF3 , 0x4456 , 0xB4 , 0x44 , 0xA6 , 0xC2 , 0xD0 , 0xDE , 0xDA , 0x38 ); // {60285AE6-AAF3-4456-B444-A6C2D0DEDA38}
55+ DEFINE_GUID (VIRTIO_NET_CLASS_ID, 0x16479D2E , 0xF0C3 , 0x4DBA , 0xBF , 0x7A , 0x04 , 0xFF , 0xF0 , 0x89 , 0x2B , 0x07 ); // {16479D2E-F0C3-4DBA-BF7A-04FFF0892B07}
56+ DEFINE_GUID (VIRTIO_PMEM_CLASS_ID, 0xABB755FC , 0x1B86 , 0x4255 , 0x83 , 0xE2 , 0xE5 , 0x78 , 0x7A , 0xBC , 0xF6 , 0xC2 ); // {ABB755FC-1B86-4255-83E2-E5787ABCF6C2}
57+
5658static constexpr size_t c_bootEntropy = 0x1000 ;
5759static constexpr auto c_localDevicesKey = L" SOFTWARE\\ Microsoft\\ Terminal Server Client\\ LocalDevices" ;
5860static constexpr std::pair<uint32_t , uint32_t > c_schemaVersionNickel{2 , 7 };
@@ -596,7 +598,7 @@ void WslCoreVm::Initialize(const GUID& VmId, const wil::shared_handle& UserToken
596598 else if (m_vmConfig.NetworkingMode == NetworkingMode::VirtioProxy)
597599 {
598600 m_networkingEngine = std::make_unique<wsl::core::VirtioNetworking>(
599- std::move (gnsChannel), m_vmConfig.EnableLocalhostRelay , m_guestDeviceManager, m_userToken);
601+ std::move (gnsChannel), m_vmConfig.EnableLocalhostRelay , m_guestDeviceManager, VIRTIO_NET_CLASS_ID, m_userToken);
600602 }
601603 else if (m_vmConfig.NetworkingMode == NetworkingMode::Bridged)
602604 {
@@ -1792,7 +1794,7 @@ void WslCoreVm::InitializeGuest()
17921794 try
17931795 {
17941796 m_guestDeviceManager->AddSharedMemoryDevice (
1795- c_virtiofsClassId , L" wslg" , L" wslg" , WSLG_SHARED_MEMORY_SIZE_MB, m_userToken.get ());
1797+ VIRTIO_FS_CLASS_ID , L" wslg" , L" wslg" , WSLG_SHARED_MEMORY_SIZE_MB, m_userToken.get ());
17961798 m_sharedMemoryRoot = std::format (L" WSL\\ {}\\ wslg" , m_machineId);
17971799 }
17981800 CATCH_LOG ()
@@ -2145,8 +2147,8 @@ std::wstring WslCoreVm::AddVirtioFsShare(_In_ bool Admin, _In_ PCWSTR Path, _In_
21452147 WI_ASSERT (!FindVirtioFsShare (tag.c_str (), Admin));
21462148
21472149 (void )m_guestDeviceManager->AddGuestDevice (
2148- VIRTIO_VIRTIOFS_DEVICE_ID ,
2149- Admin ? c_virtiofsAdminClassId : c_virtiofsClassId ,
2150+ VIRTIO_FS_DEVICE_ID ,
2151+ Admin ? VIRTIO_FS_ADMIN_CLASS_ID : VIRTIO_FS_CLASS_ID ,
21502152 tag.c_str (),
21512153 key.OptionsString ().c_str (),
21522154 sharePath.c_str (),
0 commit comments