📄 jwawinioctl.pas
字号:
HITACHI_12_WO = $44; // Opt_Disk - Hitachi 12" Write Once
CYGNET_12_WO = $45; // Opt_Disk - Cygnet/ATG 12" Write Once
KODAK_14_WO = $46; // Opt_Disk - Kodak 14" Write Once
MO_NFR_525 = $47; // Opt_Disk - Near Field Recording (Terastor)
NIKON_12_RW = $48; // Opt_Disk - Nikon 12" Rewriteable
IOMEGA_ZIP = $49; // Mag_Disk - Iomega Zip
IOMEGA_JAZ = $4A; // Mag_Disk - Iomega Jaz
SYQUEST_EZ135 = $4B; // Mag_Disk - Syquest EZ135
SYQUEST_EZFLYER = $4C; // Mag_Disk - Syquest EzFlyer
SYQUEST_SYJET = $4D; // Mag_Disk - Syquest SyJet
AVATAR_F2 = $4E; // Mag_Disk - 2.5" Floppy
MP2_8mm = $4F; // Tape - 8mm Hitachi
DST_S = $50; // Ampex DST Small Tapes
DST_M = $51; // Ampex DST Medium Tapes
DST_L = $52; // Ampex DST Large Tapes
VXATape_1 = $53; // Ecrix 8mm Tape
VXATape_2 = $54; // Ecrix 8mm Tape
STK_9840 = $55; // STK 9840
LTO_Ultrium = $56; // IBM, HP, Seagate LTO Ultrium
LTO_Accelis = $57; // IBM, HP, Seagate LTO Accelis
DVD_RAM = $58; // Opt_Disk - DVD-RAM
AIT_8mm = $59; // AIT2 or higher
ADR_1 = $5A; // OnStream ADR Mediatypes
ADR_2 = $5B;
STK_9940 = $5C; // STK 9940
type
STORAGE_MEDIA_TYPE = DWORD;
{$EXTERNALSYM STORAGE_MEDIA_TYPE}
PSTORAGE_MEDIA_TYPE = ^STORAGE_MEDIA_TYPE;
{$EXTERNALSYM PSTORAGE_MEDIA_TYPE}
TStorageMediaType = STORAGE_MEDIA_TYPE;
PStorageMediaType = ^TStorageMediaType;
const
MEDIA_ERASEABLE = $00000001;
{$EXTERNALSYM MEDIA_ERASEABLE}
MEDIA_WRITE_ONCE = $00000002;
{$EXTERNALSYM MEDIA_WRITE_ONCE}
MEDIA_READ_ONLY = $00000004;
{$EXTERNALSYM MEDIA_READ_ONLY}
MEDIA_READ_WRITE = $00000008;
{$EXTERNALSYM MEDIA_READ_WRITE}
MEDIA_WRITE_PROTECTED = $00000100;
{$EXTERNALSYM MEDIA_WRITE_PROTECTED}
MEDIA_CURRENTLY_MOUNTED = DWORD($80000000);
{$EXTERNALSYM MEDIA_CURRENTLY_MOUNTED}
//
// Define the different storage bus types
// Bus types below 128 (0x80) are reserved for Microsoft use
//
const
BusTypeUnknown = 0;
BusTypeScsi = 1;
BusTypeAtapi = 2;
BusTypeAta = 3;
BusType1394 = 4;
BusTypeSsa = 5;
BusTypeFibre = 6;
BusTypeUsb = 7;
BusTypeRAID = 8;
BusTypeMaxReserved = $7F;
type
STORAGE_BUS_TYPE = DWORD;
{$EXTERNALSYM STORAGE_BUS_TYPE}
PSTORAGE_BUS_TYPE = ^STORAGE_BUS_TYPE;
{$EXTERNALSYM PSTORAGE_BUS_TYPE}
TStorageBusType = STORAGE_BUS_TYPE;
PStorageBusType = PSTORAGE_BUS_TYPE;
TDMIDiskInfo = record
Cylinders: LARGE_INTEGER;
MediaType: STORAGE_MEDIA_TYPE;
TracksPerCylinder: DWORD;
SectorsPerTrack: DWORD;
BytesPerSector: DWORD;
NumberMediaSides: DWORD;
MediaCharacteristics: DWORD; // Bitmask of MEDIA_XXX values.
end;
TDMIRemovableDiskInfo = record
Cylinders: LARGE_INTEGER;
MediaType: STORAGE_MEDIA_TYPE;
TracksPerCylinder: DWORD;
SectorsPerTrack: DWORD;
BytesPerSector: DWORD;
NumberMediaSides: DWORD;
MediaCharacteristics: DWORD; // Bitmask of MEDIA_XXX values.
end;
TDMITapeInfo = record
MediaType: STORAGE_MEDIA_TYPE;
MediaCharacteristics: DWORD; // Bitmask of MEDIA_XXX values.
CurrentBlockSize: DWORD;
BusType: STORAGE_BUS_TYPE;
//
// Bus specific information describing the medium supported.
//
case Integer of {BusSpecificData}
0: ( {ScsiInformation}
MediumType: BYTE;
DensityCode: BYTE);
end;
PDEVICE_MEDIA_INFO = ^DEVICE_MEDIA_INFO;
{$EXTERNALSYM PDEVICE_MEDIA_INFO}
_DEVICE_MEDIA_INFO = record
case Integer of
0: (DiskInfo: TDMIDiskInfo);
1: (RemovableDiskInfo: TDMIRemovableDiskInfo);
2: (TapeInfo: TDMITapeInfo);
end;
{$EXTERNALSYM _DEVICE_MEDIA_INFO}
DEVICE_MEDIA_INFO = _DEVICE_MEDIA_INFO;
{$EXTERNALSYM DEVICE_MEDIA_INFO}
TDeviceMediaInfo = DEVICE_MEDIA_INFO;
PDeviceMediaInfo = PDEVICE_MEDIA_INFO;
PGET_MEDIA_TYPES = ^GET_MEDIA_TYPES;
{$EXTERNALSYM PGET_MEDIA_TYPES}
_GET_MEDIA_TYPES = record
DeviceType: DWORD; // FILE_DEVICE_XXX values
MediaInfoCount: DWORD;
MediaInfo: array [0..0] of DEVICE_MEDIA_INFO;
end;
{$EXTERNALSYM _GET_MEDIA_TYPES}
GET_MEDIA_TYPES = _GET_MEDIA_TYPES;
{$EXTERNALSYM GET_MEDIA_TYPES}
TGetMediaTypes = GET_MEDIA_TYPES;
PGetMediaTypes = PGET_MEDIA_TYPES;
//
// IOCTL_STORAGE_PREDICT_FAILURE
//
// input - none
//
// output - STORAGE_PREDICT_FAILURE structure
// PredictFailure returns zero if no failure predicted and non zero
// if a failure is predicted.
//
// VendorSpecific returns 512 bytes of vendor specific information
// if a failure is predicted
//
PSTORAGE_PREDICT_FAILURE = ^STORAGE_PREDICT_FAILURE;
{$EXTERNALSYM PSTORAGE_PREDICT_FAILURE}
_STORAGE_PREDICT_FAILURE = record
PredictFailure: DWORD;
VendorSpecific: array [0..511] of BYTE;
end;
{$EXTERNALSYM _STORAGE_PREDICT_FAILURE}
STORAGE_PREDICT_FAILURE = _STORAGE_PREDICT_FAILURE;
{$EXTERNALSYM STORAGE_PREDICT_FAILURE}
TStoragePredictFailure = STORAGE_PREDICT_FAILURE;
PStoragePredictFailure = PSTORAGE_PREDICT_FAILURE;
//
// IoControlCode values for disk devices.
//
const
IOCTL_DISK_BASE = FILE_DEVICE_DISK;
{$EXTERNALSYM IOCTL_DISK_BASE}
IOCTL_DISK_GET_DRIVE_GEOMETRY = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0000 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_DRIVE_GEOMETRY}
IOCTL_DISK_GET_PARTITION_INFO = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0001 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_PARTITION_INFO}
IOCTL_DISK_SET_PARTITION_INFO = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0002 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_SET_PARTITION_INFO}
IOCTL_DISK_GET_DRIVE_LAYOUT = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0003 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_DRIVE_LAYOUT}
IOCTL_DISK_SET_DRIVE_LAYOUT = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0004 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_SET_DRIVE_LAYOUT}
IOCTL_DISK_VERIFY = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0005 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_VERIFY}
IOCTL_DISK_FORMAT_TRACKS = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0006 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_FORMAT_TRACKS}
IOCTL_DISK_REASSIGN_BLOCKS = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0007 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_REASSIGN_BLOCKS}
IOCTL_DISK_PERFORMANCE = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0008 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_PERFORMANCE}
IOCTL_DISK_IS_WRITABLE = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0009 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_IS_WRITABLE}
IOCTL_DISK_LOGGING = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($000a shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_LOGGING}
IOCTL_DISK_FORMAT_TRACKS_EX = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($000b shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_FORMAT_TRACKS_EX}
IOCTL_DISK_HISTOGRAM_STRUCTURE = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($000c shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_HISTOGRAM_STRUCTURE}
IOCTL_DISK_HISTOGRAM_DATA = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($000d shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_HISTOGRAM_DATA}
IOCTL_DISK_HISTOGRAM_RESET = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($000e shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_HISTOGRAM_RESET}
IOCTL_DISK_REQUEST_STRUCTURE = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($000f shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_REQUEST_STRUCTURE}
IOCTL_DISK_REQUEST_DATA = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0010 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_REQUEST_DATA}
IOCTL_DISK_PERFORMANCE_OFF = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0018 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_PERFORMANCE_OFF}
IOCTL_DISK_CONTROLLER_NUMBER = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0011 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_CONTROLLER_NUMBER}
//
// IOCTL support for SMART drive fault prediction.
//
SMART_GET_VERSION = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0020 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM SMART_GET_VERSION}
SMART_SEND_DRIVE_COMMAND = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0021 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM SMART_SEND_DRIVE_COMMAND}
SMART_RCV_DRIVE_DATA = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0022 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM SMART_RCV_DRIVE_DATA}
//
// New IOCTLs for GUID Partition tabled disks.
//
// 23-11-2002: various bugs reported by Carsten Grafflage corrected
IOCTL_DISK_GET_PARTITION_INFO_EX = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0012 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_PARTITION_INFO_EX}
IOCTL_DISK_SET_PARTITION_INFO_EX = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0013 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_SET_PARTITION_INFO_EX}
IOCTL_DISK_GET_DRIVE_LAYOUT_EX = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0014 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_DRIVE_LAYOUT_EX}
IOCTL_DISK_SET_DRIVE_LAYOUT_EX = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0015 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_SET_DRIVE_LAYOUT_EX}
IOCTL_DISK_CREATE_DISK = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0016 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_CREATE_DISK}
IOCTL_DISK_GET_LENGTH_INFO = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0017 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_LENGTH_INFO}
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = (
(IOCTL_DISK_BASE shl 16) or (FILE_ANY_ACCESS shl 14) or
($0028 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_DRIVE_GEOMETRY_EX}
IOCTL_DISK_UPDATE_DRIVE_SIZE = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0032 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_UPDATE_DRIVE_SIZE}
IOCTL_DISK_GROW_PARTITION = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0034 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GROW_PARTITION}
IOCTL_DISK_GET_CACHE_INFORMATION = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0035 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_CACHE_INFORMATION}
IOCTL_DISK_SET_CACHE_INFORMATION = (
(IOCTL_DISK_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or
($0036 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_SET_CACHE_INFORMATION}
IOCTL_DISK_GET_WRITE_CACHE_STATE = (
(IOCTL_DISK_BASE shl 16) or (FILE_READ_ACCESS shl 14) or
($0037 shl 2) or METHOD_BUFFERED);
{$EXTERNALSYM IOCTL_DISK_GET_WRITE_CACHE_STATE}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -