Index: /trunk/src/VBox/Runtime/common/filesystem/fatvfs.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/filesystem/fatvfs.cpp	(revision 66573)
+++ /trunk/src/VBox/Runtime/common/filesystem/fatvfs.cpp	(revision 66574)
@@ -180,5 +180,5 @@
  * @interface_method_impl{RTVFSOBJOPS,pfnQueryInfo}
  */
-static DECLCALLBACK(int) rtFsFatFile_QueryInfo(void *pvThis, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttr)
+static DECLCALLBACK(int) rtFsFatObj_QueryInfo(void *pvThis, PRTFSOBJINFO pObjInfo, RTFSOBJATTRADD enmAddAttr)
 {
     PRTFSFATFILE pThis = (PRTFSFATFILE)pvThis;
@@ -301,5 +301,5 @@
  * @interface_method_impl{RTVFSOBJSETOPS,pfnMode}
  */
-static DECLCALLBACK(int) rtFsFatFile_SetMode(void *pvThis, RTFMODE fMode, RTFMODE fMask)
+static DECLCALLBACK(int) rtFsFatObj_SetMode(void *pvThis, RTFMODE fMode, RTFMODE fMask)
 {
 #if 0
@@ -319,6 +319,6 @@
  * @interface_method_impl{RTVFSOBJSETOPS,pfnSetTimes}
  */
-static DECLCALLBACK(int) rtFsFatFile_SetTimes(void *pvThis, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
-                                               PCRTTIMESPEC pChangeTime, PCRTTIMESPEC pBirthTime)
+static DECLCALLBACK(int) rtFsFatObj_SetTimes(void *pvThis, PCRTTIMESPEC pAccessTime, PCRTTIMESPEC pModificationTime,
+                                             PCRTTIMESPEC pChangeTime, PCRTTIMESPEC pBirthTime)
 {
 #if 0
@@ -334,5 +334,5 @@
  * @interface_method_impl{RTVFSOBJSETOPS,pfnSetOwner}
  */
-static DECLCALLBACK(int) rtFsFatFile_SetOwner(void *pvThis, RTUID uid, RTGID gid)
+static DECLCALLBACK(int) rtFsFatObj_SetOwner(void *pvThis, RTUID uid, RTGID gid)
 {
     RT_NOREF(pvThis, uid, gid);
@@ -398,5 +398,5 @@
             "FatFile",
             rtFsFatFile_Close,
-            rtFsFatFile_QueryInfo,
+            rtFsFatObj_QueryInfo,
             RTVFSOBJOPS_VERSION
         },
@@ -417,7 +417,7 @@
         RTVFSOBJSETOPS_VERSION,
         RT_OFFSETOF(RTVFSFILEOPS, Stream.Obj) - RT_OFFSETOF(RTVFSFILEOPS, ObjSet),
-        rtFsFatFile_SetMode,
-        rtFsFatFile_SetTimes,
-        rtFsFatFile_SetOwner,
+        rtFsFatObj_SetMode,
+        rtFsFatObj_SetTimes,
+        rtFsFatObj_SetOwner,
         RTVFSOBJSETOPS_VERSION
     },
@@ -429,4 +429,26 @@
 
 /**
+ * @interface_method_impl{RTVFSOBJOPS,pfnClose}
+ */
+static DECLCALLBACK(int) rtFsFatDir_Close(void *pvThis)
+{
+    PRTFSFATDIR pThis = (PRTFSFATDIR)pvThis;
+    RT_NOREF(pThis);
+    return VERR_NOT_IMPLEMENTED;
+}
+
+
+/**
+ * @interface_method_impl{RTVFSOBJOPS,pfnTraversalOpen}
+ */
+static DECLCALLBACK(int) rtFsFatDir_TraversalOpen(void *pvThis, const char *pszEntry, PRTVFSDIR phVfsDir,
+                                                  PRTVFSSYMLINK phVfsSymlink, PRTVFS phVfsMounted)
+{
+    RT_NOREF(pvThis, pszEntry, phVfsDir, phVfsSymlink, phVfsMounted);
+    return VERR_NOT_IMPLEMENTED;
+}
+
+
+/**
  * @interface_method_impl{RTVFSDIROPS,pfnOpenFile}
  */
@@ -511,5 +533,5 @@
  * FAT file operations.
  */
-DECL_HIDDEN_CONST(const RTVFSDIROPS) g_rtFsFatDirOps =
+static const RTVFSDIROPS g_rtFsFatDirOps =
 {
     { /* Obj */
@@ -517,6 +539,6 @@
         RTVFSOBJTYPE_FILE,
         "FatDir",
-        rtFsFatFile_Close,
-        rtFsFatFile_QueryInfo,
+        rtFsFatDir_Close,
+        rtFsFatObj_QueryInfo,
         RTVFSOBJOPS_VERSION
     },
@@ -526,10 +548,10 @@
         RTVFSOBJSETOPS_VERSION,
         RT_OFFSETOF(RTVFSFILEOPS, Stream.Obj) - RT_OFFSETOF(RTVFSFILEOPS, ObjSet),
-        rtFsFatFile_SetMode,
-        rtFsFatFile_SetTimes,
-        rtFsFatFile_SetOwner,
+        rtFsFatObj_SetMode,
+        rtFsFatObj_SetTimes,
+        rtFsFatObj_SetOwner,
         RTVFSOBJSETOPS_VERSION
     },
-    NULL /*rtFsFatDir_TraversalOpen*/,
+    rtFsFatDir_TraversalOpen,
     rtFsFatDir_OpenFile,
     rtFsFatDir_OpenDir,
@@ -543,2 +565,41 @@
 };
 
+
+/**
+ * @interface_method_impl{RTVFSOPS,pfnDestroy}
+ */
+static DECLCALLBACK(void) rtFsFatVol_Destroy(void *pvThis)
+{
+}
+
+
+/**
+ * @interface_method_impl{RTVFSOPS,pfnOpenRoo}
+ */
+static DECLCALLBACK(int) rtFsFatVol_OpenRoot(void *pvThis, PRTVFSDIR phVfsDir)
+{
+    return VERR_NOT_IMPLEMENTED;
+}
+
+
+/**
+ * @interface_method_impl{RTVFSOPS,pfnIsRangeInUse}
+ */
+static DECLCALLBACK(int) rtFsFatVol_IsRangeInUse(void *pvThis, RTFOFF off, size_t cb, bool *pfUsed)
+{
+    RT_NOREF(pvThis, off, cb, pfUsed);
+    return VERR_NOT_IMPLEMENTED;
+}
+
+
+DECL_HIDDEN_CONST(const RTVFSOPS) g_rtFsFatVolOps =
+{
+    RTVFSOPS_VERSION,
+    0 /* fFeatures */,
+    "FatVol",
+    rtFsFatVol_Destroy,
+    rtFsFatVol_OpenRoot,
+    rtFsFatVol_IsRangeInUse,
+    RTVFSOPS_VERSION
+};
+
