mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 17:44:45 +00:00
Added support for IRP_MJ_SCSI
svn path=/trunk/; revision=2559
This commit is contained in:
parent
35fb40b8b7
commit
26c5adcb95
1 changed files with 165 additions and 147 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: iotypes.h,v 1.32 2002/01/21 22:28:45 hbirr Exp $
|
/* $Id: iotypes.h,v 1.33 2002/01/26 17:59:25 ekohl Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ struct _FILE_OBJECT;
|
||||||
struct _DEVICE_OBJECT;
|
struct _DEVICE_OBJECT;
|
||||||
struct _IRP;
|
struct _IRP;
|
||||||
struct _IO_STATUS_BLOCK;
|
struct _IO_STATUS_BLOCK;
|
||||||
|
struct _SCSI_REQUEST_BLOCK;
|
||||||
|
|
||||||
/* SIMPLE TYPES *************************************************************/
|
/* SIMPLE TYPES *************************************************************/
|
||||||
|
|
||||||
|
@ -157,7 +158,7 @@ typedef struct _IO_RESOURCE_DESCRIPTOR
|
||||||
ULONG MinimumChannel;
|
ULONG MinimumChannel;
|
||||||
ULONG MaximumChannel;
|
ULONG MaximumChannel;
|
||||||
} Dma;
|
} Dma;
|
||||||
} u;
|
} u;
|
||||||
} IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
|
} IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR;
|
||||||
|
|
||||||
// IO_RESOURCE_DESCRIPTOR Options
|
// IO_RESOURCE_DESCRIPTOR Options
|
||||||
|
@ -258,166 +259,183 @@ typedef struct
|
||||||
*/
|
*/
|
||||||
typedef struct __attribute__((packed)) _IO_STACK_LOCATION
|
typedef struct __attribute__((packed)) _IO_STACK_LOCATION
|
||||||
{
|
{
|
||||||
UCHAR MajorFunction;
|
UCHAR MajorFunction;
|
||||||
UCHAR MinorFunction;
|
UCHAR MinorFunction;
|
||||||
UCHAR Flags;
|
UCHAR Flags;
|
||||||
UCHAR Control;
|
UCHAR Control;
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
PIO_SECURITY_CONTEXT SecurityContext;
|
PIO_SECURITY_CONTEXT SecurityContext;
|
||||||
ULONG Options;
|
ULONG Options;
|
||||||
USHORT FileAttributes;
|
USHORT FileAttributes;
|
||||||
USHORT ShareAccess;
|
USHORT ShareAccess;
|
||||||
ULONG EaLength;
|
ULONG EaLength;
|
||||||
} Create;
|
} Create;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
ULONG Key;
|
ULONG Key;
|
||||||
LARGE_INTEGER ByteOffset;
|
LARGE_INTEGER ByteOffset;
|
||||||
} Read;
|
} Read;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
ULONG Key;
|
ULONG Key;
|
||||||
LARGE_INTEGER ByteOffset;
|
LARGE_INTEGER ByteOffset;
|
||||||
} Write;
|
} Write;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG OutputBufferLength;
|
ULONG OutputBufferLength;
|
||||||
ULONG InputBufferLength;
|
ULONG InputBufferLength;
|
||||||
ULONG IoControlCode;
|
ULONG IoControlCode;
|
||||||
PVOID Type3InputBuffer;
|
PVOID Type3InputBuffer;
|
||||||
} DeviceIoControl;
|
} DeviceIoControl;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG OutputBufferLength;
|
ULONG OutputBufferLength;
|
||||||
ULONG InputBufferLength;
|
ULONG InputBufferLength;
|
||||||
ULONG IoControlCode;
|
ULONG IoControlCode;
|
||||||
PVOID Type3InputBuffer;
|
PVOID Type3InputBuffer;
|
||||||
} FileSystemControl;
|
} FileSystemControl;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
struct _VPB* Vpb;
|
struct _VPB* Vpb;
|
||||||
struct _DEVICE_OBJECT* DeviceObject;
|
struct _DEVICE_OBJECT* DeviceObject;
|
||||||
} Mount;
|
} Mount;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
FILE_INFORMATION_CLASS FileInformationClass;
|
FILE_INFORMATION_CLASS FileInformationClass;
|
||||||
} QueryFile;
|
} QueryFile;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
FS_INFORMATION_CLASS FsInformationClass;
|
FS_INFORMATION_CLASS FsInformationClass;
|
||||||
} QueryVolume;
|
} QueryVolume;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
FS_INFORMATION_CLASS FsInformationClass;
|
FS_INFORMATION_CLASS FsInformationClass;
|
||||||
} SetVolume;
|
} SetVolume;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
FILE_INFORMATION_CLASS FileInformationClass;
|
FILE_INFORMATION_CLASS FileInformationClass;
|
||||||
struct _FILE_OBJECT* FileObject;
|
struct _FILE_OBJECT* FileObject;
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
BOOLEAN ReplaceIfExists;
|
BOOLEAN ReplaceIfExists;
|
||||||
BOOLEAN AdvanceOnly;
|
BOOLEAN AdvanceOnly;
|
||||||
} d;
|
} d;
|
||||||
ULONG ClusterCount;
|
ULONG ClusterCount;
|
||||||
HANDLE DeleteHandle;
|
HANDLE DeleteHandle;
|
||||||
} u;
|
} u;
|
||||||
} SetFile;
|
} SetFile;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
PUNICODE_STRING FileName;
|
PUNICODE_STRING FileName;
|
||||||
FILE_INFORMATION_CLASS FileInformationClass;
|
FILE_INFORMATION_CLASS FileInformationClass;
|
||||||
ULONG FileIndex;
|
ULONG FileIndex;
|
||||||
} QueryDirectory;
|
} QueryDirectory;
|
||||||
|
|
||||||
// Parameters for IRP_MN_QUERY_DEVICE_RELATIONS
|
// Parameters for IRP_MN_QUERY_DEVICE_RELATIONS
|
||||||
struct {
|
struct
|
||||||
DEVICE_RELATION_TYPE Type;
|
{
|
||||||
} QueryDeviceRelations;
|
DEVICE_RELATION_TYPE Type;
|
||||||
|
} QueryDeviceRelations;
|
||||||
|
|
||||||
// Parameters for IRP_MN_QUERY_INTERFACE
|
// Parameters for IRP_MN_QUERY_INTERFACE
|
||||||
struct {
|
struct
|
||||||
CONST GUID *InterfaceType;
|
{
|
||||||
USHORT Size;
|
CONST GUID *InterfaceType;
|
||||||
USHORT Version;
|
USHORT Size;
|
||||||
PINTERFACE Interface;
|
USHORT Version;
|
||||||
PVOID InterfaceSpecificData;
|
PINTERFACE Interface;
|
||||||
} QueryInterface;
|
PVOID InterfaceSpecificData;
|
||||||
|
} QueryInterface;
|
||||||
|
|
||||||
// Parameters for IRP_MN_QUERY_CAPABILITIES
|
// Parameters for IRP_MN_QUERY_CAPABILITIES
|
||||||
struct {
|
struct
|
||||||
PDEVICE_CAPABILITIES Capabilities;
|
{
|
||||||
} DeviceCapabilities;
|
PDEVICE_CAPABILITIES Capabilities;
|
||||||
|
} DeviceCapabilities;
|
||||||
|
|
||||||
// Parameters for IRP_MN_QUERY_ID
|
// Parameters for IRP_MN_QUERY_ID
|
||||||
struct {
|
struct
|
||||||
BUS_QUERY_ID_TYPE IdType;
|
{
|
||||||
} QueryId;
|
BUS_QUERY_ID_TYPE IdType;
|
||||||
|
} QueryId;
|
||||||
|
|
||||||
// Parameters for IRP_MN_QUERY_DEVICE_TEXT
|
// Parameters for IRP_MN_QUERY_DEVICE_TEXT
|
||||||
struct {
|
struct
|
||||||
DEVICE_TEXT_TYPE DeviceTextType;
|
{
|
||||||
LCID LocaleId;
|
DEVICE_TEXT_TYPE DeviceTextType;
|
||||||
} QueryDeviceText;
|
LCID LocaleId;
|
||||||
|
} QueryDeviceText;
|
||||||
|
|
||||||
// Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION
|
// Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION
|
||||||
struct {
|
struct
|
||||||
BOOLEAN InPath;
|
{
|
||||||
BOOLEAN Reserved[3];
|
BOOLEAN InPath;
|
||||||
DEVICE_USAGE_NOTIFICATION_TYPE Type;
|
BOOLEAN Reserved[3];
|
||||||
} UsageNotification;
|
DEVICE_USAGE_NOTIFICATION_TYPE Type;
|
||||||
|
} UsageNotification;
|
||||||
|
|
||||||
// Parameters for IRP_MN_WAIT_WAKE
|
// Parameters for IRP_MN_WAIT_WAKE
|
||||||
struct {
|
struct
|
||||||
SYSTEM_POWER_STATE PowerState;
|
{
|
||||||
} WaitWake;
|
SYSTEM_POWER_STATE PowerState;
|
||||||
|
} WaitWake;
|
||||||
|
|
||||||
// Parameter for IRP_MN_POWER_SEQUENCE
|
// Parameter for IRP_MN_POWER_SEQUENCE
|
||||||
struct {
|
struct
|
||||||
PPOWER_SEQUENCE PowerSequence;
|
{
|
||||||
} PowerSequence;
|
PPOWER_SEQUENCE PowerSequence;
|
||||||
|
} PowerSequence;
|
||||||
|
|
||||||
// Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER
|
// Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER
|
||||||
struct {
|
struct
|
||||||
ULONG SystemContext;
|
{
|
||||||
POWER_STATE_TYPE Type;
|
ULONG SystemContext;
|
||||||
POWER_STATE State;
|
POWER_STATE_TYPE Type;
|
||||||
POWER_ACTION ShutdownType;
|
POWER_STATE State;
|
||||||
} Power;
|
POWER_ACTION ShutdownType;
|
||||||
|
} Power;
|
||||||
|
|
||||||
// Parameters for IRP_MN_START_DEVICE
|
// Parameters for IRP_MN_START_DEVICE
|
||||||
struct {
|
struct
|
||||||
PCM_RESOURCE_LIST AllocatedResources;
|
{
|
||||||
PCM_RESOURCE_LIST AllocatedResourcesTranslated;
|
PCM_RESOURCE_LIST AllocatedResources;
|
||||||
} StartDevice;
|
PCM_RESOURCE_LIST AllocatedResourcesTranslated;
|
||||||
|
} StartDevice;
|
||||||
|
|
||||||
} Parameters;
|
// Parameters for IRP_MN_SCSI_CLASS
|
||||||
|
struct
|
||||||
struct _DEVICE_OBJECT* DeviceObject;
|
{
|
||||||
struct _FILE_OBJECT* FileObject;
|
struct _SCSI_REQUEST_BLOCK *Srb;
|
||||||
|
} Scsi;
|
||||||
PIO_COMPLETION_ROUTINE CompletionRoutine;
|
|
||||||
PVOID CompletionContext;
|
} Parameters;
|
||||||
|
|
||||||
|
struct _DEVICE_OBJECT* DeviceObject;
|
||||||
|
struct _FILE_OBJECT* FileObject;
|
||||||
|
|
||||||
|
PIO_COMPLETION_ROUTINE CompletionRoutine;
|
||||||
|
PVOID CompletionContext;
|
||||||
|
|
||||||
} __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION;
|
} __attribute__((packed)) IO_STACK_LOCATION, *PIO_STACK_LOCATION;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _IO_STATUS_BLOCK
|
typedef struct _IO_STATUS_BLOCK
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
ULONG Information;
|
ULONG Information;
|
||||||
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue