diff -urN wine-10.0-orig/configure.ac wine-10.0/configure.ac
--- wine-10.0-orig/configure.ac	2025-01-22 01:42:16 +0900
+++ wine-10.0/configure.ac	2025-01-25 00:36:17 +0900
@@ -16,6 +16,11 @@
 dnl **** Command-line arguments ****
 
 AC_ARG_ENABLE(archs, AS_HELP_STRING([--enable-archs={i386,x86_64,arm,aarch64}],[enable multiple architectures for PE compilation]))
+AC_ARG_ENABLE(unixfs,AS_HELP_STRING([--disable-unixfs],[do not include unixfs support]))
+if test "x$enable_unixfs" != "xno"
+then
+    AC_DEFINE(ENABLE_UNIXFS, 1, [Define to enable unixfs]) 
+fi
 AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
 AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
 AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[do not build the regression tests]))
diff -urN wine-10.0-orig/dlls/ntdll/unix/file.c wine-10.0/dlls/ntdll/unix/file.c
--- wine-10.0-orig/dlls/ntdll/unix/file.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/ntdll/unix/file.c	2025-01-25 00:36:17 +0900
@@ -3543,7 +3543,9 @@
 static NTSTATUS nt_to_unix_file_name_no_root( const UNICODE_STRING *nameW, char **unix_name_ret,
                                               UINT disposition )
 {
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unixW[] = {'u','n','i','x'};
+#endif
     static const WCHAR invalid_charsW[] = { INVALID_NT_CHARS, 0 };
 
     NTSTATUS status = STATUS_SUCCESS;
@@ -3577,12 +3579,14 @@
     }
     if (pos > MAX_DIR_ENTRY_LEN) return STATUS_OBJECT_NAME_INVALID;
 
+#if defined(ENABLE_UNIXFS)
     if (pos >= 4 && !memcmp( prefix, unixW, sizeof(unixW) ))
     {
         /* allow slash for unix namespace */
         if (pos > 4 && prefix[4] == '/') pos = 4;
         is_unix = pos == 4;
     }
+#endif
     prefix_len = pos;
     prefix[prefix_len] = 0;
 
@@ -3847,9 +3851,11 @@
  */
 NTSTATUS unix_to_nt_file_name( const char *name, WCHAR **nt )
 {
+#if defined(ENABLE_UNIXFS)
     static const WCHAR unix_prefixW[] = {'\\','?','?','\\','u','n','i','x',0};
     WCHAR dos_prefixW[] = {'\\','?','?','\\','A',':','\\',0};
     const WCHAR *prefix = unix_prefixW;
+#endif
     unsigned int lenW, lenA = strlen(name);
     const char *path = name;
     NTSTATUS status;
@@ -3857,6 +3863,7 @@
     int drive;
 
     status = find_drive_rootA( &path, lenA, &drive );
+#if defined(ENABLE_UNIXFS)
     lenA -= path - name;
 
     if (status == STATUS_SUCCESS)
@@ -3875,6 +3882,9 @@
     collapse_path( buffer );
     *nt = buffer;
     return STATUS_SUCCESS;
+#else
+    return status;
+#endif
 }
 
 
diff -urN wine-10.0-orig/dlls/shell32/folders.c wine-10.0/dlls/shell32/folders.c
--- wine-10.0-orig/dlls/shell32/folders.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/folders.c	2025-01-25 00:36:17 +0900
@@ -221,9 +221,11 @@
                 *piIndex = -IDI_SHELL_MY_DOCUMENTS;
             else if(IsEqualGUID(riid, &CLSID_NetworkPlaces))
                 *piIndex = -IDI_SHELL_MY_NETWORK_PLACES;
+#if defined(ENABLE_UNIXFS)
             else if(IsEqualGUID(riid, &CLSID_UnixFolder) ||
                     IsEqualGUID(riid, &CLSID_UnixDosFolder))
                 *piIndex = -IDI_SHELL_DRIVE;
+#endif
             else
                 *piIndex = -IDI_SHELL_FOLDER;
 	  }
diff -urN wine-10.0-orig/dlls/shell32/shell32_classes.idl wine-10.0/dlls/shell32/shell32_classes.idl
--- wine-10.0-orig/dlls/shell32/shell32_classes.idl	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shell32_classes.idl	2025-01-25 00:36:17 +0900
@@ -126,6 +126,7 @@
     uuid(0afaced1-e828-11d1-9187-b532f1e9575d)
 ] coclass FolderShortcut { interface IShellFolder2; }
 
+/*
 [
     helpstring("/"),
     threading(apartment),
@@ -137,6 +138,7 @@
     threading(apartment),
     uuid(9d20aae8-0625-44b0-9ca7-71889c2254d9)
 ] coclass UnixDosFolder { interface IShellFolder2; }
+*/
 
 [
     helpstring("My Documents"),
diff -urN wine-10.0-orig/dlls/shell32/shell32_main.h wine-10.0/dlls/shell32/shell32_main.h
--- wine-10.0-orig/dlls/shell32/shell32_main.h	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shell32_main.h	2025-01-25 00:36:17 +0900
@@ -93,8 +93,10 @@
 HRESULT WINAPI IDropTargetHelper_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
 HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV);
 HRESULT WINAPI IControlPanel_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
+#if defined(ENABLE_UNIXFS)
 HRESULT WINAPI UnixFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
 HRESULT WINAPI UnixDosFolder_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
+#endif
 HRESULT WINAPI FolderShortcut_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
 HRESULT WINAPI MyDocuments_Constructor(IUnknown * pUnkOuter, REFIID riid, LPVOID *ppv);
 HRESULT WINAPI RecycleBin_Constructor(IUnknown * pUnkOuter, REFIID riif, LPVOID *ppv);
diff -urN wine-10.0-orig/dlls/shell32/shellole.c wine-10.0/dlls/shell32/shellole.c
--- wine-10.0-orig/dlls/shell32/shellole.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shellole.c	2025-01-25 00:36:17 +0900
@@ -78,8 +78,10 @@
 	{&CLSID_ShellFSFolder,	IFSFolder_Constructor},
 	{&CLSID_ShellItem,	IShellItem_Constructor},
 	{&CLSID_ShellLink,	IShellLink_Constructor},
+#if defined(ENABLE_UNIXFS)
 	{&CLSID_UnixDosFolder,  UnixDosFolder_Constructor},
 	{&CLSID_UnixFolder,     UnixFolder_Constructor},
+#endif
 	{&CLSID_ExplorerBrowser,ExplorerBrowser_Constructor},
 	{&CLSID_KnownFolderManager, KnownFolderManager_Constructor},
 	{&CLSID_Shell,          IShellDispatch_Constructor},
diff -urN wine-10.0-orig/dlls/shell32/shellpath.c wine-10.0/dlls/shell32/shellpath.c
--- wine-10.0-orig/dlls/shell32/shellpath.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shellpath.c	2025-01-25 00:36:17 +0900
@@ -3307,9 +3307,11 @@
         DWORD call_for_attr;
     } folders[] =
     {
+#if defined(ENABLE_UNIXFS)
         { &CLSID_UnixFolder, TRUE, FALSE, FALSE },
         { &CLSID_UnixDosFolder, TRUE, FALSE, FALSE,
           SFGAO_FILESYSANCESTOR|SFGAO_FOLDER|SFGAO_HASSUBFOLDER, SFGAO_FILESYSTEM },
+#endif
         { &CLSID_FolderShortcut, FALSE, FALSE, FALSE,
           SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_LINK,
           SFGAO_HASSUBFOLDER|SFGAO_FILESYSTEM|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR },
@@ -3439,9 +3441,11 @@
             *ppidl = _ILCreateDesktop();
             break;
 
+#if defined(ENABLE_UNIXFS)
         case CSIDL_PERSONAL:
             *ppidl = _ILCreateMyDocuments();
             break;
+#endif
 
         case CSIDL_INTERNET:
             *ppidl = _ILCreateIExplore();
diff -urN wine-10.0-orig/dlls/shell32/shfldr.h wine-10.0/dlls/shell32/shfldr.h
--- wine-10.0-orig/dlls/shell32/shfldr.h	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shfldr.h	2025-01-25 00:36:17 +0900
@@ -82,5 +82,7 @@
 
 void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags);
 
+#if defined(ENABLE_UNIXFS)
 DEFINE_GUID( CLSID_UnixFolder, 0xcc702eb2, 0x7dc5, 0x11d9, 0xc6, 0x87, 0x00, 0x04, 0x23, 0x8a, 0x01, 0xcd );
 DEFINE_GUID( CLSID_UnixDosFolder, 0x9d20aae8, 0x0625, 0x44b0, 0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9 );
+#endif
diff -urN wine-10.0-orig/dlls/shell32/shfldr_desktop.c wine-10.0/dlls/shell32/shfldr_desktop.c
--- wine-10.0-orig/dlls/shell32/shfldr_desktop.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shfldr_desktop.c	2025-01-25 00:36:17 +0900
@@ -184,11 +184,13 @@
         pidlTemp = _ILCreateMyComputer ();
         szNext = lpszDisplayName;
     }
+#if defined(ENABLE_UNIXFS)
     else if (!wcsncmp( lpszDisplayName, L"\\\\?\\unix\\", 9 ))
     {
         pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);
         szNext = lpszDisplayName;
     }
+#endif
     else if (PathIsUNCW(lpszDisplayName))
     {
         pidlTemp = _ILCreateNetwork();
@@ -216,6 +218,7 @@
 
         if (*lpszDisplayName)
         {
+#if defined(ENABLE_UNIXFS)
             if (*lpszDisplayName == '/')
             {
                 /* UNIX paths should be parsed by unixfs */
@@ -229,6 +232,7 @@
                 }
             }
             else
+#endif
             {
                 /* build a complete path to create a simple pidl */
                 WCHAR szPath[MAX_PATH];
diff -urN wine-10.0-orig/dlls/shell32/shfldr_fs.c wine-10.0/dlls/shell32/shfldr_fs.c
--- wine-10.0-orig/dlls/shell32/shfldr_fs.c	2025-01-22 01:42:16 +0900
+++ wine-10.0/dlls/shell32/shfldr_fs.c	2025-01-25 00:36:17 +0900
@@ -329,6 +329,7 @@
         /* get the next element */
         szNext = GetNextElementW( lpszDisplayName, szPath + len, MAX_PATH - len );
 
+#if defined(ENABLE_UNIXFS)
         if (IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ) && lpszDisplayName[0] == '/')
         {
             lstrcpynW( szPath + len, lpszDisplayName + 1, MAX_PATH - len );
@@ -350,6 +351,7 @@
             (*ppidl)->mkid.cb = 0; /* Terminate the ITEMIDLIST */
             return S_OK;
         }
+#endif
 
         PathRemoveBackslashW( szPath );
 
@@ -438,7 +440,9 @@
     TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbc,
      shdebugstr_guid (riid), ppvOut);
 
+#if defined(ENABLE_UNIXFS)
     if (!IsEqualCLSID( clsid, &CLSID_UnixFolder ) && !IsEqualCLSID( clsid, &CLSID_UnixDosFolder ))
+#endif
         clsid = &CLSID_ShellFSFolder;
 
     return SHELL32_BindToChild (This->pidlRoot, clsid, This->sPathTarget, pidl, riid, ppvOut);
@@ -801,6 +805,7 @@
 
     lstrcpynW( dest, path, MAX_PATH );
 
+#if defined(ENABLE_UNIXFS)
     /* try to get a better path than the \\?\unix one */
     if (!wcsnicmp( path, L"\\\\?\\unix\\", 9 ))
     {
@@ -818,6 +823,7 @@
         }
         else lstrcpynW( dest, path + 8, MAX_PATH );
     }
+#endif
 
     if (!_ILIsDesktop(pidl))
     {
@@ -866,7 +872,12 @@
         {
             if (This->sPathTarget)
                 get_display_name( pszPath, This->sPathTarget, pidl,
-                                  IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
+#if defined(ENABLE_UNIXFS)
+                                  IsEqualCLSID( This->pclsid, &CLSID_UnixFolder )
+#else
+                                  0
+#endif
+            );
         } else {
             /* pidl has to contain exactly one non null SHITEMID */
             hr = E_INVALIDARG;
@@ -877,7 +888,12 @@
             This->sPathTarget)
         {
             get_display_name( pszPath, This->sPathTarget, pidl,
-                              IsEqualCLSID( This->pclsid, &CLSID_UnixFolder ));
+#if defined(ENABLE_UNIXFS)
+                              IsEqualCLSID( This->pclsid, &CLSID_UnixFolder )
+#else
+                              0
+#endif
+            );
         }
         else _ILSimpleGetTextW(pidl, pszPath, MAX_PATH);
         if (!_ILIsFolder(pidl)) SHELL_FS_ProcessDisplayFilename(pszPath, dwFlags);
@@ -1843,6 +1859,7 @@
     return create_fs( outer_unk, riid, ppv, &CLSID_ShellFSFolder, NULL );
 }
 
+#if defined(ENABLE_UNIXFS)
 HRESULT WINAPI UnixFolder_Constructor(IUnknown *outer_unk, REFIID riid, void **ppv)
 {
     return create_fs( outer_unk, riid, ppv, &CLSID_UnixFolder, L"\\\\?\\unix\\" );
@@ -1852,6 +1869,7 @@
 {
     return create_fs( outer_unk, riid, ppv, &CLSID_UnixDosFolder, NULL );
 }
+#endif
 
 HRESULT WINAPI FolderShortcut_Constructor(IUnknown *outer_unk, REFIID riid, void **ppv)
 {
diff -urN wine-10.0-orig/include/config.h.in wine-10.0/include/config.h.in
--- wine-10.0-orig/include/config.h.in	2025-01-22 01:42:16 +0900
+++ wine-10.0/include/config.h.in	2025-01-25 00:36:17 +0900
@@ -3,6 +3,9 @@
 #ifndef __WINE_CONFIG_H
 #define __WINE_CONFIG_H
 
+/* Define to enable unixfs */
+#undef ENABLE_UNIXFS
+
 /* Define to the file extension for executables. */
 #undef EXEEXT
 
