-/* $Id: iotypes.h,v 1.35 2002/03/25 21:53:27 ekohl Exp $
- *
+/* $Id: iotypes.h,v 1.44 2002/11/07 02:44:49 robd Exp $
+ *
*/
#ifndef __INCLUDE_DDK_IOTYPES_H
USHORT Revision;
ULONG Count;
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
-} __attribute__((packed))CM_PARTIAL_RESOURCE_LIST;
+} __attribute__((packed))CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST;
typedef struct
{
{
struct _VPB* Vpb;
struct _DEVICE_OBJECT* DeviceObject;
- } Mount;
+ } MountVolume;
struct
{
struct _VPB* Vpb;
PDEVICE_CAPABILITIES Capabilities;
} DeviceCapabilities;
+ // Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS
+ struct
+ {
+ PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
+ } FilterResourceRequirements;
+
// Parameters for IRP_MN_QUERY_ID
struct
{
struct _SCSI_REQUEST_BLOCK *Srb;
} Scsi;
+ //byte range file locking
+ struct
+ {
+ PLARGE_INTEGER Length;
+ ULONG Key;
+ LARGE_INTEGER ByteOffset;
+ } LockControl;
+
/* Paramters for other calls */
struct
{
struct _DEVICE_OBJECT* DeviceObject;
struct _FILE_OBJECT* FileObject;
-
+
PIO_COMPLETION_ROUTINE CompletionRoutine;
PVOID CompletionContext;
-
+
} __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION;
PVOID Reserved;
} DEVICE_OBJECT, *PDEVICE_OBJECT;
-/*
- * Dispatch routine type declaration
- */
-typedef NTSTATUS STDCALL
-(*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT*,
- IRP*);
-
/*
* Fast i/o routine type declaration
/*
* Dispatch routine type declaration
*/
+typedef NTSTATUS STDCALL
+(*PDRIVER_DISPATCH)(IN struct _DEVICE_OBJECT *DeviceObject,
+ IN struct _IRP *Irp);
+
+/*
+ * StartIo routine type declaration
+ */
typedef VOID STDCALL
(*PDRIVER_STARTIO)(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp);
/*
- * Dispatch routine type declaration
+ * Unload routine type declaration
*/
-typedef NTSTATUS STDCALL
-(*PDRIVER_UNLOAD)(struct _DRIVER_OBJECT*);
+typedef VOID STDCALL
+(*PDRIVER_UNLOAD)(IN struct _DRIVER_OBJECT *DriverObject);
+/*
+ * AddDevice routine type declaration
+ */
typedef NTSTATUS STDCALL
(*PDRIVER_ADD_DEVICE)(IN struct _DRIVER_OBJECT *DriverObject,
IN struct _DEVICE_OBJECT *PhysicalDeviceObject);
{
ULONG Count;
PFAST_IO_DISPATCH Dispatch;
-
+
} FAST_IO_DISPATCH_TABLE, * PFAST_IO_DISPATCH_TABLE;
#endif
(*PIO_TIMER_ROUTINE)(PDEVICE_OBJECT DeviceObject,
PVOID Context);
+typedef struct _IO_WORKITEM *PIO_WORKITEM;
+typedef VOID (*PIO_WORKITEM_ROUTINE)(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context);
+
#if WINDOWS_STRUCTS_DOESNT_ALREADY_DEFINE_THIS
typedef struct _PARTITION_INFORMATION
{