bootstrap
[reactos.git] / ntoskrnl / io / iomgr.c
index 4c5a358..be4bf54 100644 (file)
 
 POBJECT_TYPE EXPORTED IoDeviceObjectType = NULL;
 POBJECT_TYPE EXPORTED IoFileObjectType = NULL;
+#ifndef LIBCAPTIVE
 ULONG        EXPORTED IoReadOperationCount = 0;        /* FIXME: unknown type */
 ULONG        EXPORTED IoReadTransferCount = 0; /* FIXME: unknown type */
 ULONG        EXPORTED IoWriteOperationCount = 0; /* FIXME: unknown type */
 ULONG        EXPORTED IoWriteTransferCount = 0;        /* FIXME: unknown type */
 ULONG        EXPORTED IoStatisticsLock = 0;    /* FIXME: unknown type */
+#endif /* LIBCAPTIVE */
 
 static GENERIC_MAPPING IopFileMapping = {FILE_GENERIC_READ,
                                         FILE_GENERIC_WRITE,
@@ -43,6 +45,8 @@ static GENERIC_MAPPING IopFileMapping = {FILE_GENERIC_READ,
 
 /* FUNCTIONS ****************************************************************/
 
+#ifndef LIBCAPTIVE
+
 VOID STDCALL
 IopCloseFile(PVOID ObjectBody,
             ULONG HandleCount)
@@ -111,15 +115,18 @@ IopDeleteFile(PVOID ObjectBody)
      }
 }
 
+#endif /* LIBCAPTIVE */
 
 VOID IoInit (VOID)
 {
+#ifndef LIBCAPTIVE
   OBJECT_ATTRIBUTES ObjectAttributes;
   UNICODE_STRING DirName;
   UNICODE_STRING LinkName;
   HANDLE Handle;
 
   IopInitDriverImplementation();
+#endif /* LIBCAPTIVE */
   
   /*
    * Register iomgr types: DeviceObjectType
@@ -143,10 +150,14 @@ VOID IoInit (VOID)
   IoDeviceObjectType->Security = NULL;
   IoDeviceObjectType->QueryName = NULL;
   IoDeviceObjectType->OkayToClose = NULL;
+#ifndef LIBCAPTIVE
   IoDeviceObjectType->Create = IopCreateDevice;
+#else /* !LIBCAPTIVE */
+  IoDeviceObjectType->Create = NULL;
+#endif /* !LIBCAPTIVE */
   IoDeviceObjectType->DuplicationNotify = NULL;
   
-  RtlInitUnicodeStringFromLiteral(&IoDeviceObjectType->TypeName, L"Device");
+  RtlInitUnicodeStringFromLiteral(&IoDeviceObjectType->TypeName, REACTOS_UCS2(L"Device"));
 
   /*
    * Register iomgr types: FileObjectType
@@ -164,17 +175,27 @@ VOID IoInit (VOID)
   IoFileObjectType->Mapping = &IopFileMapping;
   IoFileObjectType->Dump = NULL;
   IoFileObjectType->Open = NULL;
+#ifndef LIBCAPTIVE
   IoFileObjectType->Close = IopCloseFile;
   IoFileObjectType->Delete = IopDeleteFile;
+#else /* !LIBCAPTIVE */
+  IoFileObjectType->Close = NULL;
+  IoFileObjectType->Delete = NULL;
+#endif /* !LIBCAPTIVE */
   IoFileObjectType->Parse = NULL;
   IoFileObjectType->Security = NULL;
   IoFileObjectType->QueryName = NULL;
   IoFileObjectType->OkayToClose = NULL;
+#ifndef LIBCAPTIVE
   IoFileObjectType->Create = IopCreateFile;
+#else /* !LIBCAPTIVE */
+  IoFileObjectType->Create = NULL;
+#endif /* !LIBCAPTIVE */
   IoFileObjectType->DuplicationNotify = NULL;
   
-  RtlInitUnicodeStringFromLiteral(&IoFileObjectType->TypeName, L"File");
+  RtlInitUnicodeStringFromLiteral(&IoFileObjectType->TypeName, REACTOS_UCS2(L"File"));
 
+#ifndef LIBCAPTIVE
   /*
    * Create the '\Driver' object directory
    */
@@ -250,12 +271,14 @@ VOID IoInit (VOID)
   IoInitCancelHandling();
   IoInitSymbolicLinkImplementation();
   IoInitFileSystemImplementation();
+#endif /* LIBCAPTIVE */
   IoInitVpbImplementation();
   IoInitShutdownNotification();
 
   /*
    * Create link from '\DosDevices' to '\??' directory
    */
+#ifndef LIBCAPTIVE
   RtlInitUnicodeStringFromLiteral(&LinkName,
                       L"\\DosDevices");
   RtlInitUnicodeStringFromLiteral(&DirName,
@@ -267,8 +290,10 @@ VOID IoInit (VOID)
    * Initialize PnP manager
    */
   PnpInit();
+#endif /* LIBCAPTIVE */
 }
 
+#ifndef LIBCAPTIVE
 
 PGENERIC_MAPPING STDCALL
 IoGetFileObjectGenericMapping(VOID)
@@ -276,4 +301,6 @@ IoGetFileObjectGenericMapping(VOID)
   return(&IopFileMapping);
 }
 
+#endif /* LIBCAPTIVE */
+
 /* EOF */