test: class2.h File Reference

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# class2.h File Reference

`#include <ntdddisk.h>`
`#include <ntddcdrm.h>`
`#include <ntddtape.h>`
`#include "ntddscsi.h"`
`#include <stdio.h>`

Go to the source code of this file.

## Classes

struct | _CLASS_INIT_DATA
struct | _DEVICE_EXTENSION
struct | _COMPLETION_CONTEXT

## Defines

#define | DebugPrint(x)
#define | MAXIMUM_RETRIES 4
#define | DEV_WRITE_CACHE 0x00000001
#define | DEV_USE_SCSI1 0x00000002
#define | DEV_SAFE_START_UNIT 0x00000004
#define | DEV_NO_12BYTE_CDB 0x00000008
#define | SCSIPORT_API DECLSPEC_IMPORT

## Typedefs

typedef VOID(* | PCLASS_ERROR )(IN PDEVICE_OBJECT DeviceObject, IN PSCSI_REQUEST_BLOCK Srb, IN OUT NTSTATUS *Status, IN OUT BOOLEAN *Retry)
typedef BOOLEAN(* | PCLASS_DEVICE_CALLBACK )(IN PINQUIRYDATA)
typedef NTSTATUS(* | PCLASS_READ_WRITE )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
typedef BOOLEAN(* | PCLASS_FIND_DEVICES )(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, IN struct _CLASS_INIT_DATA *InitializationData, IN PDEVICE_OBJECT PortDeviceObject, IN ULONG PortNumber)
typedef NTSTATUS(* | PCLASS_DEVICE_CONTROL )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
typedef NTSTATUS(* | PCLASS_SHUTDOWN_FLUSH )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
typedef NTSTATUS(* | PCLASS_CREATE_CLOSE )(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
typedef _CLASS_INIT_DATA | CLASS_INIT_DATA
typedef _CLASS_INIT_DATA * | PCLASS_INIT_DATA
typedef _DEVICE_EXTENSION | DEVICE_EXTENSION
typedef _DEVICE_EXTENSION * | PDEVICE_EXTENSION
typedef _COMPLETION_CONTEXT | COMPLETION_CONTEXT
typedef _COMPLETION_CONTEXT * | PCOMPLETION_CONTEXT

## Functions

SCSIPORT_API ULONG | ScsiClassInitialize (IN PVOID Argument1, IN PVOID Argument2, IN PCLASS_INIT_DATA InitializationData)
SCSIPORT_API NTSTATUS | ScsiClassCreateDeviceObject (IN PDRIVER_OBJECT DriverObject, IN PCCHAR ObjectNameBuffer, IN OPTIONAL PDEVICE_OBJECT PhysicalDeviceObject, IN OUT PDEVICE_OBJECT *DeviceObject, IN PCLASS_INIT_DATA InitializationData)
SCSIPORT_API ULONG | ScsiClassFindUnclaimedDevices (IN PCLASS_INIT_DATA InitializationData, IN PSCSI_ADAPTER_BUS_INFO AdapterInformation)
SCSIPORT_API NTSTATUS | ScsiClassGetCapabilities (IN PDEVICE_OBJECT PortDeviceObject, OUT PIO_SCSI_CAPABILITIES *PortCapabilities)
SCSIPORT_API NTSTATUS | ScsiClassGetInquiryData (IN PDEVICE_OBJECT PortDeviceObject, IN PSCSI_ADAPTER_BUS_INFO *ConfigInfo)
SCSIPORT_API NTSTATUS | ScsiClassReadDriveCapacity (IN PDEVICE_OBJECT DeviceObject)
SCSIPORT_API VOID | ScsiClassReleaseQueue (IN PDEVICE_OBJECT DeviceObject)
SCSIPORT_API NTSTATUS | ScsiClassRemoveDevice (IN PDEVICE_OBJECT PortDeviceObject, IN UCHAR PathId, IN UCHAR TargetId, IN UCHAR Lun)
SCSIPORT_API NTSTATUS | ScsiClassAsynchronousCompletion (PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context)
SCSIPORT_API VOID | ScsiClassSplitRequest (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN ULONG MaximumBytes)
SCSIPORT_API NTSTATUS | ScsiClassDeviceControl (PDEVICE_OBJECT DeviceObject, PIRP Irp)
SCSIPORT_API NTSTATUS | ScsiClassIoComplete (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
SCSIPORT_API NTSTATUS | ScsiClassCheckVerifyComplete (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
SCSIPORT_API NTSTATUS | ScsiClassIoCompleteAssociated (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context)
SCSIPORT_API BOOLEAN | ScsiClassInterpretSenseInfo (IN PDEVICE_OBJECT DeviceObject, IN PSCSI_REQUEST_BLOCK Srb, IN UCHAR MajorFunctionCode, IN ULONG IoDeviceCode, IN ULONG RetryCount, OUT NTSTATUS *Status)
SCSIPORT_API NTSTATUS | ScsiClassSendSrbSynchronous (PDEVICE_OBJECT DeviceObject, PSCSI_REQUEST_BLOCK Srb, PVOID BufferAddress, ULONG BufferLength, BOOLEAN WriteToDevice)
SCSIPORT_API NTSTATUS | ScsiClassSendSrbAsynchronous (PDEVICE_OBJECT DeviceObject, PSCSI_REQUEST_BLOCK Srb, PIRP Irp, PVOID BufferAddress, ULONG BufferLength, BOOLEAN WriteToDevice)
SCSIPORT_API VOID | ScsiClassBuildRequest (PDEVICE_OBJECT DeviceObject, PIRP Irp)
SCSIPORT_API ULONG | ScsiClassModeSense (IN PDEVICE_OBJECT DeviceObject, IN PCHAR ModeSenseBuffer, IN ULONG Length, IN UCHAR PageMode)
SCSIPORT_API BOOLEAN | ScsiClassModeSelect (IN PDEVICE_OBJECT DeviceObject, IN PCHAR ModeSelectBuffer, IN ULONG Length, IN BOOLEAN SavePage)
SCSIPORT_API PVOID | ScsiClassFindModePage (IN PCHAR ModeSenseBuffer, IN ULONG Length, IN UCHAR PageMode, IN BOOLEAN Use6Byte)
SCSIPORT_API NTSTATUS | ScsiClassClaimDevice (IN PDEVICE_OBJECT PortDeviceObject, IN PSCSI_INQUIRY_DATA LunInfo, IN BOOLEAN Release, OUT PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL)
SCSIPORT_API NTSTATUS | ScsiClassInternalIoControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
SCSIPORT_API VOID | ScsiClassInitializeSrbLookasideList (IN PDEVICE_EXTENSION DeviceExtension, IN ULONG NumberElements)
SCSIPORT_API ULONG | ScsiClassQueryTimeOutRegistryValue (IN PUNICODE_STRING RegistryPath)
SCSIPORT_API BOOLEAN | ScsiClassIsFloppyDevice (IN PDEVICE_OBJECT DeviceObject, IN PSCSI_INQUIRY_DATA LunInfo)

## Define Documentation

#define DebugPrint | ( | x |  | ) |

| Definition at line 37 of file class2.h.

#define DEV_NO_12BYTE_CDB 0x00000008

| Definition at line 358 of file class2.h.

#define DEV_SAFE_START_UNIT 0x00000004

| Definition at line 351 of file class2.h.

#define DEV_USE_SCSI1 0x00000002

| Definition at line 344 of file class2.h.

#define DEV_WRITE_CACHE 0x00000001

| Definition at line 337 of file class2.h.

#define MAXIMUM_RETRIES 4

| Definition at line 48 of file class2.h.

#define SCSIPORT_API DECLSPEC_IMPORT

| Definition at line 370 of file class2.h.

## Typedef Documentation

typedef struct _CLASS_INIT_DATA CLASS_INIT_DATA

typedef struct _COMPLETION_CONTEXT COMPLETION_CONTEXT

typedef struct _DEVICE_EXTENSION DEVICE_EXTENSION

typedef NTSTATUS(* PCLASS_CREATE_CLOSE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

| Definition at line 100 of file class2.h.

typedef BOOLEAN(* PCLASS_DEVICE_CALLBACK)(IN PINQUIRYDATA)

| Definition at line 63 of file class2.h.

typedef NTSTATUS(* PCLASS_DEVICE_CONTROL)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

| Definition at line 86 of file class2.h.

typedef VOID(* PCLASS_ERROR)(IN PDEVICE_OBJECT DeviceObject, IN PSCSI_REQUEST_BLOCK Srb, IN OUT NTSTATUS *Status, IN OUT BOOLEAN *Retry)

| Definition at line 54 of file class2.h.

typedef BOOLEAN(* PCLASS_FIND_DEVICES)(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, IN struct _CLASS_INIT_DATA *InitializationData, IN PDEVICE_OBJECT PortDeviceObject, IN ULONG PortNumber)

| Definition at line 76 of file class2.h.

typedef struct _CLASS_INIT_DATA * PCLASS_INIT_DATA

typedef NTSTATUS(* PCLASS_READ_WRITE)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

| Definition at line 69 of file class2.h.

typedef NTSTATUS(* PCLASS_SHUTDOWN_FLUSH)(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

| Definition at line 93 of file class2.h.

typedef struct _COMPLETION_CONTEXT * PCOMPLETION_CONTEXT

typedef struct _DEVICE_EXTENSION * PDEVICE_EXTENSION

## Function Documentation

SCSIPORT_API NTSTATUS ScsiClassAsynchronousCompletion | ( | PDEVICE_OBJECT | DeviceObject,
|  | PIRP | Irp,
|  | PVOID | Context
| ) |

SCSIPORT_API VOID ScsiClassBuildRequest | ( | PDEVICE_OBJECT | DeviceObject,
|  | PIRP | Irp
| ) |

SCSIPORT_API NTSTATUS ScsiClassCheckVerifyComplete | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PIRP | Irp,
|  | IN PVOID | Context
| ) |

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

SCSIPORT_API NTSTATUS ScsiClassCreateDeviceObject | ( | IN PDRIVER_OBJECT | DriverObject,
|  | IN PCCHAR | ObjectNameBuffer,
|  | IN OPTIONAL PDEVICE_OBJECT | PhysicalDeviceObject,
|  | IN OUT PDEVICE_OBJECT * | DeviceObject,
|  | IN PCLASS_INIT_DATA | InitializationData
| ) |

SCSIPORT_API NTSTATUS ScsiClassDeviceControl | ( | PDEVICE_OBJECT | DeviceObject,
|  | PIRP | Irp
| ) |

SCSIPORT_API PVOID ScsiClassFindModePage | ( | IN PCHAR | ModeSenseBuffer,
|  | IN ULONG | Length,
|  | IN UCHAR | PageMode,
|  | IN BOOLEAN | Use6Byte
| ) |

SCSIPORT_API ULONG ScsiClassFindUnclaimedDevices | ( | IN PCLASS_INIT_DATA | InitializationData,
|  | IN PSCSI_ADAPTER_BUS_INFO | AdapterInformation
| ) |

SCSIPORT_API NTSTATUS ScsiClassGetCapabilities | ( | IN PDEVICE_OBJECT | PortDeviceObject,
|  | OUT PIO_SCSI_CAPABILITIES * | PortCapabilities
| ) |

SCSIPORT_API NTSTATUS ScsiClassGetInquiryData | ( | IN PDEVICE_OBJECT | PortDeviceObject,
|  | IN PSCSI_ADAPTER_BUS_INFO * | ConfigInfo
| ) |

SCSIPORT_API ULONG ScsiClassInitialize | ( | IN PVOID | Argument1,
|  | IN PVOID | Argument2,
|  | IN PCLASS_INIT_DATA | InitializationData
| ) |

SCSIPORT_API VOID ScsiClassInitializeSrbLookasideList | ( | IN PDEVICE_EXTENSION | DeviceExtension,
|  | IN ULONG | NumberElements
| ) |

SCSIPORT_API NTSTATUS ScsiClassInternalIoControl | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PIRP | Irp
| ) |

SCSIPORT_API BOOLEAN ScsiClassInterpretSenseInfo | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PSCSI_REQUEST_BLOCK | Srb,
|  | IN UCHAR | MajorFunctionCode,
|  | IN ULONG | IoDeviceCode,
|  | IN ULONG | RetryCount,
|  | OUT NTSTATUS * | Status
| ) |

SCSIPORT_API NTSTATUS ScsiClassIoComplete | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PIRP | Irp,
|  | IN PVOID | Context
| ) |

SCSIPORT_API NTSTATUS ScsiClassIoCompleteAssociated | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PIRP | Irp,
|  | IN PVOID | Context
| ) |

SCSIPORT_API BOOLEAN ScsiClassIsFloppyDevice | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PSCSI_INQUIRY_DATA | LunInfo
| ) |

SCSIPORT_API BOOLEAN ScsiClassModeSelect | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PCHAR | ModeSelectBuffer,
|  | IN ULONG | Length,
|  | IN BOOLEAN | SavePage
| ) |

SCSIPORT_API ULONG ScsiClassModeSense | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PCHAR | ModeSenseBuffer,
|  | IN ULONG | Length,
|  | IN UCHAR | PageMode
| ) |

SCSIPORT_API ULONG ScsiClassQueryTimeOutRegistryValue | ( | IN PUNICODE_STRING | RegistryPath | ) |

SCSIPORT_API NTSTATUS ScsiClassReadDriveCapacity | ( | IN PDEVICE_OBJECT | DeviceObject | ) |

SCSIPORT_API VOID ScsiClassReleaseQueue | ( | IN PDEVICE_OBJECT | DeviceObject | ) |

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

SCSIPORT_API NTSTATUS ScsiClassSendSrbAsynchronous | ( | PDEVICE_OBJECT | DeviceObject,
|  | PSCSI_REQUEST_BLOCK | Srb,
|  | PIRP | Irp,
|  | PVOID | BufferAddress,
|  | ULONG | BufferLength,
|  | BOOLEAN | WriteToDevice
| ) |

SCSIPORT_API NTSTATUS ScsiClassSendSrbSynchronous | ( | PDEVICE_OBJECT | DeviceObject,
|  | PSCSI_REQUEST_BLOCK | Srb,
|  | PVOID | BufferAddress,
|  | ULONG | BufferLength,
|  | BOOLEAN | WriteToDevice
| ) |

SCSIPORT_API VOID ScsiClassSplitRequest | ( | IN PDEVICE_OBJECT | DeviceObject,
|  | IN PIRP | Irp,
|  | IN ULONG | MaximumBytes
| ) |