static KSPIN_LOCK FileSystemListLock;
static LIST_ENTRY FileSystemListHead;
+#ifndef LIBCAPTIVE
static KSPIN_LOCK FsChangeNotifyListLock;
static LIST_ENTRY FsChangeNotifyListHead;
+#endif /* LIBCAPTIVE */
#define TAG_FILE_SYSTEM TAG('F', 'S', 'Y', 'S')
+#ifndef LIBCAPTIVE
#define TAG_FS_CHANGE_NOTIFY TAG('F', 'S', 'C', 'N')
static VOID
IopNotifyFileSystemChange(PDEVICE_OBJECT DeviceObject,
BOOLEAN DriverActive);
+#endif /* LIBCAPTIVE */
/* FUNCTIONS *****************************************************************/
+#ifndef LIBCAPTIVE
+
NTSTATUS STDCALL
NtFsControlFile (
IN HANDLE DeviceHandle,
return(Status);
}
+#endif /* LIBCAPTIVE */
VOID
IoInitFileSystemImplementation(VOID)
InitializeListHead(&FileSystemListHead);
KeInitializeSpinLock(&FileSystemListLock);
+#ifndef LIBCAPTIVE
InitializeListHead(&FsChangeNotifyListHead);
KeInitializeSpinLock(&FsChangeNotifyListLock);
+#endif /* LIBCAPTIVE */
}
+#ifndef LIBCAPTIVE
VOID
IoShutdownRegisteredFileSystems(VOID)
Irp->Tail.Overlay.Thread->DeviceToVerify = DeviceObject;
}
+#endif /* LIBCAPTIVE */
VOID STDCALL
IoRegisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
ExInterlockedInsertTailList(&FileSystemListHead,
&Fs->Entry,
&FileSystemListLock);
+#ifndef LIBCAPTIVE
IopNotifyFileSystemChange(DeviceObject,
TRUE);
+#endif /* LIBCAPTIVE */
}
+#ifndef LIBCAPTIVE
VOID STDCALL
IoUnregisterFileSystem(IN PDEVICE_OBJECT DeviceObject)
}
}
+#endif /* LIBCAPTIVE */
+
/* EOF */