mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.0 KiB
167 lines
4.0 KiB
/*++
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Author:
|
|
|
|
Dieter Achtelstetter (A-DACH) 8/4/1994
|
|
|
|
NOTE:
|
|
--*/
|
|
//
|
|
//---- Structures out of scsi.h .
|
|
//---- Need to include scsi.h
|
|
//---- But this gives a whole bunch of errors.
|
|
//---- To make this work I need to only include
|
|
//---- driver header files and non win32.
|
|
//---- If I get to it I will do so but this
|
|
//---- tructure will not change so not a bug deal..
|
|
//
|
|
|
|
#ifndef _RESCAN_
|
|
#define _RESCAN_
|
|
|
|
typedef struct _INQUIRYDATA {
|
|
UCHAR DeviceType : 5;
|
|
UCHAR DeviceTypeQualifier : 3;
|
|
UCHAR DeviceTypeModifier : 7;
|
|
UCHAR RemovableMedia : 1;
|
|
UCHAR Versions;
|
|
UCHAR ResponseDataFormat;
|
|
UCHAR AdditionalLength;
|
|
UCHAR Reserved[2];
|
|
UCHAR SoftReset : 1;
|
|
UCHAR CommandQueue : 1;
|
|
UCHAR Reserved2 : 1;
|
|
UCHAR LinkedCommands : 1;
|
|
UCHAR Synchronous : 1;
|
|
UCHAR Wide16Bit : 1;
|
|
UCHAR Wide32Bit : 1;
|
|
UCHAR RelativeAddressing : 1;
|
|
UCHAR VendorId[8];
|
|
UCHAR ProductId[16];
|
|
UCHAR ProductRevisionLevel[4];
|
|
UCHAR VendorSpecific[20];
|
|
UCHAR Reserved3[40];
|
|
} INQUIRYDATA, *PINQUIRYDATA;
|
|
|
|
#define DIRECT_ACCESS_DEVICE 0x00 // disks
|
|
#define SEQUENTIAL_ACCESS_DEVICE 0x01 // tapes
|
|
#define PRINTER_DEVICE 0x02 // printers
|
|
#define PROCESSOR_DEVICE 0x03 // scanners, printers, etc
|
|
#define WRITE_ONCE_READ_MULTIPLE_DEVICE 0x04 // worms
|
|
#define READ_ONLY_DIRECT_ACCESS_DEVICE 0x05 // cdroms
|
|
#define SCANNER_DEVICE 0x06 // scanners
|
|
#define OPTICAL_DEVICE 0x07 // optical disks
|
|
#define MEDIUM_CHANGER 0x08 // jukebox
|
|
#define COMMUNICATION_DEVICE 0x09 // network
|
|
#define ALL_DEVICES 0xff
|
|
|
|
|
|
#define IsDeviceScsi(i) (TapeDeviceInfo[i].Type == SCSI)? TRUE : FALSE
|
|
|
|
#define MAX_DEVICE_COUNT 20
|
|
|
|
#define VENDER_ID_LEN (sizeof(((INQUIRYDATA*)0)->VendorId)+1)
|
|
#define PRODUCT_ID_LEN (sizeof(((INQUIRYDATA*)0)->ProductId)+1)
|
|
#define PRODUCT_REVISION_LEVEL_LEN (sizeof(((INQUIRYDATA*)0)->ProductRevisionLevel)+1)
|
|
|
|
typedef struct DEVICE_DETECT_INFO_T
|
|
{
|
|
|
|
WCHAR VendorId[VENDER_ID_LEN + 4 ];
|
|
WCHAR ProductId[ PRODUCT_ID_LEN + 4];
|
|
WCHAR ProductRevisionLevel[PRODUCT_REVISION_LEVEL_LEN + 4];
|
|
|
|
SCSIDEV_CREATEDEVICE_DATA Data;
|
|
|
|
} DEVICE_DETECT_DATA, * PDEVICE_DETECT_DATA;
|
|
|
|
|
|
|
|
|
|
//---- Device type defines.
|
|
//#define SCSI 0
|
|
//#define FLOPPY 1
|
|
//#define UNKNON 2
|
|
|
|
#define NON_SCSI_TAPE_STRING "HARDWARE\\DEVICEMAP\\Tape\\Unit %i"
|
|
#define TAPE_IDENTIFIER_STRING "Identifier"
|
|
#define TAPE_DEVICE_STRING "DeviceName"
|
|
#define TAPE_DRIVER_STRING "Driver"
|
|
|
|
|
|
#define MaxRegKeySize 300
|
|
|
|
#define SCSI_DEVICE_NAME_STRING \
|
|
"HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %i\\Scsi Bus %i\\Target Id %i\\Logical Unit Id %i"
|
|
#define SCSI_BUS_STRING "HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %i\\Scsi Bus 0"
|
|
#define SCSI_PORT_STRING "HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port %i"
|
|
#define SCSI_INITIATOR_RESOURCE_STRING "HARDWARE\\RESOURCEMAP\\ScsiAdapter\\%s"
|
|
#define INITIATOR_STRING "Initiator"
|
|
#define IDENTIFIER_STRING "Identifier"
|
|
#define DRIVER_STRING "Driver"
|
|
#define DEVICE_NAME_STRING "DeviceName"
|
|
#define DEVICE_MFG_STRING "Mfg"
|
|
|
|
#define ERROR_STRING "Unknown"
|
|
|
|
//---- Function defenitions
|
|
|
|
#include "..\..\cpl\tapedev.h"
|
|
#include "..\..\cpl\scsidev.h"
|
|
|
|
void
|
|
GetScsiMiniPortDriverName(
|
|
int PortNumber,
|
|
PCHAR DriverNameBuffer,
|
|
DWORD DriverNameBufferSize);
|
|
|
|
|
|
BOOL
|
|
GetAllTapeDeviceInfo(
|
|
BOOL Rescan,
|
|
PDEVICEINFO_LIST TapeDeviceInfo,
|
|
POPTIONLISTC OptionList);
|
|
|
|
BOOL
|
|
GetAllScsiTapeDeviceInfo(
|
|
BOOL Rescan,
|
|
PDEVICEINFO_LIST TapeDeviceList,
|
|
POPTIONLISTC OptionList);
|
|
|
|
BOOL
|
|
GetAllNonScsiTapeDeviceInfo(
|
|
BOOL RatleDevice,
|
|
BOOL Rescan,
|
|
PDEVICEINFO_LIST TapeDeviceList,
|
|
POPTIONLISTC OptionList);
|
|
|
|
BOOL
|
|
DoRatleDevice(
|
|
PCHAR DeviceName,
|
|
DWORD Device);
|
|
|
|
|
|
BOOL
|
|
GetScsiInfo(
|
|
BOOL Rescan,
|
|
PDEVICEINFO DeviceInfo,
|
|
DWORD * TapeDeviceCount);
|
|
|
|
BOOL
|
|
GetAllScsiInfo(
|
|
BOOL Rescan,
|
|
PSCSI_HOST_ADAPTER_LIST AdapterList,
|
|
POPTIONLISTC OptionList);
|
|
|
|
#endif
|
|
|
|
|
|
|