//
// Define this if you want debugging support
//
-#define _IO_DEBUG_ 0x00
+#define _IO_DEBUG_ 0x01
//
// These define the Debug Masks Supported
}
#endif
#else
-#define IOTRACE(x, ...) DPRINT(__VA_ARGS__)
+#define IOTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
#endif
//
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;
- PDUMMY_FILE_OBJECT DummyFileObject;
+ PDUMMY_FILE_OBJECT LocalFileObject;
+ BOOLEAN TraversedMountPoint;
ULONG InternalFlags;
- //PIO_DRIVER_CREATE_CONTEXT DriverCreateContext; Vista only, needs ROS DDK Update
+ PDEVICE_OBJECT TopDeviceObjectHint;
} OPEN_PACKET, *POPEN_PACKET;
//
ULONG Tag;
ULONG ErrorControl;
} BOOT_DRIVER_NODE, *PBOOT_DRIVER_NODE;
-
+
//
// List of Bus Type GUIDs
//
NTSTATUS
NTAPI
-IopCreateResourceListFromRequirements(
+IopFixupResourceListWithRequirements(
IN PIO_RESOURCE_REQUIREMENTS_LIST RequirementsList,
OUT PCM_RESOURCE_LIST *ResourceList
);
NTAPI
PipCallDriverAddDevice(
IN PDEVICE_NODE DeviceNode,
- IN BOOLEAN LoadDriver,
+ IN BOOLEAN LoadDriver,
IN PDRIVER_OBJECT DriverObject
);
IopInitiatePnpIrp(
IN PDEVICE_OBJECT DeviceObject,
IN PIO_STATUS_BLOCK IoStatusBlock,
- IN ULONG MinorFunction,
+ IN UCHAR MinorFunction,
IN PIO_STACK_LOCATION Stack
);
OUT PULONG Disposition OPTIONAL
);
+
+NTSTATUS
+IopTraverseDeviceTree(
+ PDEVICETREE_TRAVERSE_CONTEXT Context);
+
//
// PnP Routines
//
IN ULONG RegSzLength,
OUT PUSHORT StringLength OPTIONAL
);
-
+
//
// Initialization Routines
//
IN PIRP Irp
);
+PIRP
+NTAPI
+IopAllocateIrpMustSucceed(
+ IN CCHAR StackSize
+);
+
//
// Shutdown routines
//
NTSTATUS
PnpRootCreateDevice(
IN PUNICODE_STRING ServiceName,
+ IN OPTIONAL PDRIVER_OBJECT DriverObject,
OUT PDEVICE_OBJECT *PhysicalDeviceObject,
OUT OPTIONAL PUNICODE_STRING FullInstancePath
);
+NTSTATUS
+PnpRootRegisterDevice(
+ IN PDEVICE_OBJECT DeviceObject);
+
//
// Driver Routines
//
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);