ReactOS  0.4.15-dev-3297-g037c744
scsi_port.h File Reference
#include "srb.h"
Include dependency graph for scsi_port.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _SCSI_PASS_THROUGH
 
struct  _SCSI_PASS_THROUGH_DIRECT
 
struct  _SCSI_BUS_DATA
 
struct  _SCSI_ADAPTER_BUS_INFO
 
struct  _SCSI_INQUIRY_DATA
 
struct  _SRB_IO_CONTROL
 
struct  _IO_SCSI_CAPABILITIES
 
struct  _SCSI_ADDRESS
 
struct  _DUMP_POINTERS
 

Macros

#define IOCTL_SCSI_BASE   FILE_DEVICE_CONTROLLER
 
#define DD_SCSI_DEVICE_NAME   "\\Device\\ScsiPort"
 
#define IOCTL_SCSI_PASS_THROUGH   CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
#define IOCTL_SCSI_MINIPORT   CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
#define IOCTL_SCSI_GET_INQUIRY_DATA   CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define IOCTL_SCSI_GET_CAPABILITIES   CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define IOCTL_SCSI_PASS_THROUGH_DIRECT   CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
#define IOCTL_SCSI_GET_ADDRESS   CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define IOCTL_SCSI_RESCAN_BUS   CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define IOCTL_SCSI_GET_DUMP_POINTERS   CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
#define SCSI_IOCTL_DATA_OUT   0
 
#define SCSI_IOCTL_DATA_IN   1
 
#define SCSI_IOCTL_DATA_UNSPECIFIED   2
 
#define CLASS_SPECIAL_CAUSE_NOT_REPORTABLE_HACK   0x00000020
 
#define SCSIPORT_API
 

Typedefs

typedef struct _SCSI_PASS_THROUGH SCSI_PASS_THROUGH
 
typedef struct _SCSI_PASS_THROUGHPSCSI_PASS_THROUGH
 
typedef struct _SCSI_PASS_THROUGH_DIRECT SCSI_PASS_THROUGH_DIRECT
 
typedef struct _SCSI_PASS_THROUGH_DIRECTPSCSI_PASS_THROUGH_DIRECT
 
typedef struct _SCSI_BUS_DATA SCSI_BUS_DATA
 
typedef struct _SCSI_BUS_DATAPSCSI_BUS_DATA
 
typedef struct _SCSI_ADAPTER_BUS_INFO SCSI_ADAPTER_BUS_INFO
 
typedef struct _SCSI_ADAPTER_BUS_INFOPSCSI_ADAPTER_BUS_INFO
 
typedef struct _SCSI_INQUIRY_DATA SCSI_INQUIRY_DATA
 
typedef struct _SCSI_INQUIRY_DATAPSCSI_INQUIRY_DATA
 
typedef struct _SRB_IO_CONTROL SRB_IO_CONTROL
 
typedef struct _SRB_IO_CONTROLPSRB_IO_CONTROL
 
typedef struct _IO_SCSI_CAPABILITIES IO_SCSI_CAPABILITIES
 
typedef struct _IO_SCSI_CAPABILITIESPIO_SCSI_CAPABILITIES
 
typedef struct _SCSI_ADDRESS SCSI_ADDRESS
 
typedef struct _SCSI_ADDRESSPSCSI_ADDRESS
 
typedef struct _DUMP_POINTERS DUMP_POINTERS
 
typedef struct _DUMP_POINTERSPDUMP_POINTERS
 

Functions

NTSTATUS ScsiClassGetInquiryData (IN PDEVICE_OBJECT PortDeviceObject, IN PSCSI_ADAPTER_BUS_INFO *ConfigInfo)
 
NTSTATUS ScsiClassReadDeviceInquiryData (IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN DirectAccess)
 
NTSTATUS ScsiClassReadDriveCapacity (IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS ScsiClassGetCapabilities (IN PDEVICE_OBJECT PortDeviceObject, OUT PIO_SCSI_CAPABILITIES *PortCapabilities)
 
NTSTATUS ScsiClassGetAddress (IN PDEVICE_OBJECT ClassDeviceObject, OUT PSCSI_ADDRESS Address)
 
VOID ScsiClassReleaseQueue (IN PDEVICE_OBJECT DeviceObject)
 
NTSTATUS ScsiClassRemoveDevice (IN PDEVICE_OBJECT PortDeviceObject, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun)
 
NTSTATUS ScsiClassClaimDevice (IN PDEVICE_OBJECT PortDeviceObject, IN PSCSI_INQUIRY_DATA LunInfo, IN BOOLEAN Release, OUT PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL)
 
NTSTATUS ScsiClassInternalIoControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
 
NTSTATUS ScsiClassIoCompletion (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
 
NTSTATUS ScsiClassSendSrbSynchronous (IN PDEVICE_OBJECT TargetDeviceObject, IN PSCSI_REQUEST_BLOCK _srb, IN PKEVENT event)
 
VOID ScsiClassInitSrbBusAddr (PSCSI_REQUEST_BLOCK Srb, PVOID DeviceExtension)
 
NTSTATUS DbgWaitForSingleObject_ (IN PVOID Object, IN PLARGE_INTEGER Timeout OPTIONAL)
 

Macro Definition Documentation

◆ CLASS_SPECIAL_CAUSE_NOT_REPORTABLE_HACK

#define CLASS_SPECIAL_CAUSE_NOT_REPORTABLE_HACK   0x00000020

Definition at line 175 of file scsi_port.h.

◆ DD_SCSI_DEVICE_NAME

#define DD_SCSI_DEVICE_NAME   "\\Device\\ScsiPort"

Definition at line 39 of file scsi_port.h.

◆ IOCTL_SCSI_BASE

#define IOCTL_SCSI_BASE   FILE_DEVICE_CONTROLLER

Definition at line 37 of file scsi_port.h.

◆ IOCTL_SCSI_GET_ADDRESS

#define IOCTL_SCSI_GET_ADDRESS   CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 52 of file scsi_port.h.

◆ IOCTL_SCSI_GET_CAPABILITIES

#define IOCTL_SCSI_GET_CAPABILITIES   CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 50 of file scsi_port.h.

◆ IOCTL_SCSI_GET_DUMP_POINTERS

#define IOCTL_SCSI_GET_DUMP_POINTERS   CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 54 of file scsi_port.h.

◆ IOCTL_SCSI_GET_INQUIRY_DATA

#define IOCTL_SCSI_GET_INQUIRY_DATA   CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 49 of file scsi_port.h.

◆ IOCTL_SCSI_MINIPORT

#define IOCTL_SCSI_MINIPORT   CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

Definition at line 48 of file scsi_port.h.

◆ IOCTL_SCSI_PASS_THROUGH

#define IOCTL_SCSI_PASS_THROUGH   CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

Definition at line 47 of file scsi_port.h.

◆ IOCTL_SCSI_PASS_THROUGH_DIRECT

#define IOCTL_SCSI_PASS_THROUGH_DIRECT   CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

Definition at line 51 of file scsi_port.h.

◆ IOCTL_SCSI_RESCAN_BUS

#define IOCTL_SCSI_RESCAN_BUS   CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)

Definition at line 53 of file scsi_port.h.

◆ SCSI_IOCTL_DATA_IN

#define SCSI_IOCTL_DATA_IN   1

Definition at line 172 of file scsi_port.h.

◆ SCSI_IOCTL_DATA_OUT

#define SCSI_IOCTL_DATA_OUT   0

Definition at line 171 of file scsi_port.h.

◆ SCSI_IOCTL_DATA_UNSPECIFIED

#define SCSI_IOCTL_DATA_UNSPECIFIED   2

Definition at line 173 of file scsi_port.h.

◆ SCSIPORT_API

#define SCSIPORT_API

Definition at line 177 of file scsi_port.h.

Typedef Documentation

◆ DUMP_POINTERS

◆ IO_SCSI_CAPABILITIES

◆ PDUMP_POINTERS

◆ PIO_SCSI_CAPABILITIES

◆ PSCSI_ADAPTER_BUS_INFO

◆ PSCSI_ADDRESS

◆ PSCSI_BUS_DATA

◆ PSCSI_INQUIRY_DATA

◆ PSCSI_PASS_THROUGH

◆ PSCSI_PASS_THROUGH_DIRECT

◆ PSRB_IO_CONTROL

◆ SCSI_ADAPTER_BUS_INFO

◆ SCSI_ADDRESS

◆ SCSI_BUS_DATA

◆ SCSI_INQUIRY_DATA

◆ SCSI_PASS_THROUGH

◆ SCSI_PASS_THROUGH_DIRECT

◆ SRB_IO_CONTROL

Function Documentation

◆ DbgWaitForSingleObject_()

NTSTATUS DbgWaitForSingleObject_ ( IN PVOID  Object,
IN PLARGE_INTEGER Timeout  OPTIONAL 
)

◆ ScsiClassClaimDevice()

NTSTATUS ScsiClassClaimDevice ( IN PDEVICE_OBJECT  PortDeviceObject,
IN PSCSI_INQUIRY_DATA  LunInfo,
IN BOOLEAN  Release,
OUT PDEVICE_OBJECT *NewPortDeviceObject  OPTIONAL 
)

◆ ScsiClassGetAddress()

NTSTATUS ScsiClassGetAddress ( IN PDEVICE_OBJECT  ClassDeviceObject,
OUT PSCSI_ADDRESS  Address 
)

◆ ScsiClassGetCapabilities()

NTSTATUS ScsiClassGetCapabilities ( IN PDEVICE_OBJECT  PortDeviceObject,
OUT PIO_SCSI_CAPABILITIES PortCapabilities 
)

◆ ScsiClassGetInquiryData()

NTSTATUS ScsiClassGetInquiryData ( IN PDEVICE_OBJECT  PortDeviceObject,
IN PSCSI_ADAPTER_BUS_INFO ConfigInfo 
)

◆ ScsiClassInitSrbBusAddr()

VOID ScsiClassInitSrbBusAddr ( PSCSI_REQUEST_BLOCK  Srb,
PVOID  DeviceExtension 
)

◆ ScsiClassInternalIoControl()

NTSTATUS ScsiClassInternalIoControl ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp 
)

◆ ScsiClassIoCompletion()

NTSTATUS ScsiClassIoCompletion ( IN PDEVICE_OBJECT  DeviceObject,
IN PIRP  Irp,
IN PVOID  Context 
)

◆ ScsiClassReadDeviceInquiryData()

NTSTATUS ScsiClassReadDeviceInquiryData ( IN PDEVICE_OBJECT  DeviceObject,
IN BOOLEAN  DirectAccess 
)

◆ ScsiClassReadDriveCapacity()

NTSTATUS ScsiClassReadDriveCapacity ( IN PDEVICE_OBJECT  DeviceObject)

◆ ScsiClassReleaseQueue()

VOID ScsiClassReleaseQueue ( IN PDEVICE_OBJECT  DeviceObject)

◆ ScsiClassRemoveDevice()

NTSTATUS ScsiClassRemoveDevice ( IN PDEVICE_OBJECT  PortDeviceObject,
IN UCHAR  PathId,
IN UCHAR  TargetId,
IN UCHAR  Lun 
)

◆ ScsiClassSendSrbSynchronous()

NTSTATUS ScsiClassSendSrbSynchronous ( IN PDEVICE_OBJECT  TargetDeviceObject,
IN PSCSI_REQUEST_BLOCK  _srb,
IN PKEVENT  event 
)