[NTOS:IO]
[reactos.git] / reactos / ntoskrnl / include / internal / io.h
index cbcf466..dcf1e61 100644 (file)
@@ -368,14 +368,15 @@ typedef struct _OPEN_PACKET
     PFILE_BASIC_INFORMATION BasicInformation;
     PFILE_NETWORK_OPEN_INFORMATION NetworkInformation;
     CREATE_FILE_TYPE CreateFileType;
     PFILE_BASIC_INFORMATION BasicInformation;
     PFILE_NETWORK_OPEN_INFORMATION NetworkInformation;
     CREATE_FILE_TYPE CreateFileType;
-    PVOID MailslotOrPipeParameters;
+    PVOID ExtraCreateParameters;
     BOOLEAN Override;
     BOOLEAN QueryOnly;
     BOOLEAN DeleteOnly;
     BOOLEAN FullAttributes;
     BOOLEAN Override;
     BOOLEAN QueryOnly;
     BOOLEAN DeleteOnly;
     BOOLEAN FullAttributes;
-    PDUMMY_FILE_OBJECT DummyFileObject;
+    PDUMMY_FILE_OBJECT LocalFileObject;
+    BOOLEAN TraversedMountPoint;
     ULONG InternalFlags;
     ULONG InternalFlags;
-    //PIO_DRIVER_CREATE_CONTEXT DriverCreateContext; Vista only, needs ROS DDK Update
+    PDEVICE_OBJECT TopDeviceObjectHint;
 } OPEN_PACKET, *POPEN_PACKET;
 
 //
 } OPEN_PACKET, *POPEN_PACKET;
 
 //
@@ -416,7 +417,7 @@ typedef struct _BOOT_DRIVER_NODE
     ULONG Tag;
     ULONG ErrorControl;
 } BOOT_DRIVER_NODE, *PBOOT_DRIVER_NODE;
     ULONG Tag;
     ULONG ErrorControl;
 } BOOT_DRIVER_NODE, *PBOOT_DRIVER_NODE;
+
 //
 // List of Bus Type GUIDs
 //
 //
 // List of Bus Type GUIDs
 //
@@ -516,7 +517,7 @@ IopAssignDeviceResources(
 
 NTSTATUS
 NTAPI
 
 NTSTATUS
 NTAPI
-IopCreateResourceListFromRequirements(
+IopFixupResourceListWithRequirements(
     IN PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList,
     OUT PCM_RESOURCE_LIST *ResourceList
 );
     IN PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList,
     OUT PCM_RESOURCE_LIST *ResourceList
 );
@@ -536,7 +537,7 @@ NTSTATUS
 NTAPI
 PipCallDriverAddDevice(
     IN PDEVICE_NODE DeviceNode,
 NTAPI
 PipCallDriverAddDevice(
     IN PDEVICE_NODE DeviceNode,
-    IN BOOLEAN LoadDriver,     
+    IN BOOLEAN LoadDriver,
     IN PDRIVER_OBJECT DriverObject
 );
 
     IN PDRIVER_OBJECT DriverObject
 );
 
@@ -618,7 +619,7 @@ NTAPI
 IopInitiatePnpIrp(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIO_STATUS_BLOCK IoStatusBlock,
 IopInitiatePnpIrp(
     IN PDEVICE_OBJECT DeviceObject,
     IN PIO_STATUS_BLOCK IoStatusBlock,
-    IN ULONG MinorFunction,
+    IN UCHAR MinorFunction,
     IN PIO_STACK_LOCATION Stack
 );
 
     IN PIO_STACK_LOCATION Stack
 );
 
@@ -743,7 +744,7 @@ PnpRegSzToString(
     IN ULONG RegSzLength,
     OUT PUSHORT StringLength OPTIONAL
 );
     IN ULONG RegSzLength,
     OUT PUSHORT StringLength OPTIONAL
 );
-                                               
+
 //
 // Initialization Routines
 //
 //
 // Initialization Routines
 //
@@ -903,6 +904,12 @@ IopAbortInterruptedIrp(
     IN PIRP Irp
 );
 
     IN PIRP Irp
 );
 
+PIRP
+NTAPI
+IopAllocateIrpMustSucceed(
+    IN CCHAR StackSize
+);
+
 //
 // Shutdown routines
 //
 //
 // Shutdown routines
 //
@@ -1022,10 +1029,15 @@ PnpRootDriverEntry(
 NTSTATUS
 PnpRootCreateDevice(
     IN PUNICODE_STRING ServiceName,
 NTSTATUS
 PnpRootCreateDevice(
     IN PUNICODE_STRING ServiceName,
+    IN OPTIONAL PDRIVER_OBJECT DriverObject,
     OUT PDEVICE_OBJECT *PhysicalDeviceObject,
     OUT OPTIONAL PUNICODE_STRING FullInstancePath
 );
 
     OUT PDEVICE_OBJECT *PhysicalDeviceObject,
     OUT OPTIONAL PUNICODE_STRING FullInstancePath
 );
 
+NTSTATUS
+PnpRootRegisterDevice(
+    IN PDEVICE_OBJECT DeviceObject);
+
 //
 // Driver Routines
 //
 //
 // Driver Routines
 //
@@ -1046,6 +1058,7 @@ NTAPI
 IopCreateDriver(IN PUNICODE_STRING DriverName OPTIONAL,
                 IN PDRIVER_INITIALIZE InitializationFunction,
                 IN PUNICODE_STRING RegistryPath,
 IopCreateDriver(IN PUNICODE_STRING DriverName OPTIONAL,
                 IN PDRIVER_INITIALIZE InitializationFunction,
                 IN PUNICODE_STRING RegistryPath,
+                IN PCUNICODE_STRING ServiceName,
                 PLDR_DATA_TABLE_ENTRY ModuleObject,
                 OUT PDRIVER_OBJECT *pDriverObject);
 
                 PLDR_DATA_TABLE_ENTRY ModuleObject,
                 OUT PDRIVER_OBJECT *pDriverObject);