Windows NT 4.0 source code leak
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

/*++
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