update for HEAD-2003091401
[reactos.git] / ntoskrnl / include / internal / io.h
index f35f6d4..3f1ab58 100644 (file)
 #include <ddk/ntddk.h>
 #include <internal/ob.h>
 
+
+#ifndef __USE_W32API
+#define DEVICE_TYPE_FROM_CTL_CODE(ctlCode) (((ULONG)(ctlCode&0xffff0000))>>16)
+#endif
+
+#define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003)
+
+
+typedef struct _IO_COMPLETION_PACKET{
+   ULONG             Key;
+   ULONG             Overlapped;
+   IO_STATUS_BLOCK   IoStatus;
+   LIST_ENTRY        ListEntry;
+} IO_COMPLETION_PACKET, *PIO_COMPLETION_PACKET;
+
+
 typedef struct _DEVICE_NODE
 {
   struct _DEVICE_NODE *Parent;
@@ -251,13 +267,17 @@ IopLoadBootStartDrivers(VOID);
 NTSTATUS
 IopCreateDriverObject(PDRIVER_OBJECT *DriverObject,
                      PUNICODE_STRING ServiceName,
-                     BOOLEAN FileSystemDriver);
+                     BOOLEAN FileSystemDriver,
+                     PVOID DriverImageStart,
+                     ULONG DriverImageSize);
 NTSTATUS
 IopInitializeDeviceNodeService(PDEVICE_NODE DeviceNode);
 NTSTATUS
 IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
                    PDEVICE_NODE DeviceNode,
-                   BOOLEAN FileSystemDriver);
+                   BOOLEAN FileSystemDriver,
+                   PVOID DriverImageStart,
+                   ULONG DriverImageSize);
 VOID
 IoInitCancelHandling(VOID);
 VOID
@@ -271,7 +291,13 @@ IoMountVolume(IN PDEVICE_OBJECT DeviceObject,
 POBJECT IoOpenSymlink(POBJECT SymbolicLink);
 POBJECT IoOpenFileOnDevice(POBJECT SymbolicLink, PWCHAR Name);
 
-VOID IoSecondStageCompletion(PIRP Irp, CCHAR PriorityBoost);
+VOID STDCALL
+IoSecondStageCompletion(
+   PKAPC Apc,
+   PKNORMAL_ROUTINE* NormalRoutine,
+   PVOID* NormalContext,
+   PVOID* SystemArgument1,
+   PVOID* SystemArgument2);
 
 NTSTATUS STDCALL
 IopCreateFile(PVOID ObjectBody,
@@ -291,7 +317,7 @@ PIRP IoBuildSynchronousFsdRequestWithMdl(ULONG MajorFunction,
                                         PLARGE_INTEGER StartingOffset,
                                         PKEVENT Event,
                                         PIO_STATUS_BLOCK IoStatusBlock,
-                                        ULONG PagingIo);
+                                        BOOLEAN PagingIo);
 
 VOID IoInitShutdownNotification(VOID);
 VOID IoShutdownRegisteredDevices(VOID);
@@ -331,6 +357,22 @@ NTSTATUS
 IoDestroyDriverList(VOID);
 
 
+/* errlog.c */
+
+NTSTATUS
+IopInitErrorLog (VOID);
+
+
+/* rawfs.c */
+
+BOOLEAN
+RawFsIsRawFileSystemDeviceObject(IN PDEVICE_OBJECT DeviceObject);
+
+NTSTATUS STDCALL
+RawFsDriverEntry(PDRIVER_OBJECT DriverObject,
+  PUNICODE_STRING RegistryPath);
+
+
 /* pnproot.c */
 
 NTSTATUS