Tassadar
12-02-2003, 11:12
Qualcuno mi può dire dove posso trovare le costanti delle api di windows (tipo IOCTL_STORAGE_EJECT_MEDIA etc)
dovrebbero essere contenute in devioctl.h (per IOCTL etc...)?
P.S. Stò utilizzando delphi
ilsensine
12-02-2003, 12:07
#include <winioctl.h>
ilsensine
12-02-2003, 12:22
P.S. Stò utilizzando delphi
Ehm...un qui quo qua
Non so in quale unit si trovino...
Tassadar
12-02-2003, 13:22
Leggevo anch'io qualcosa riguardo al DDK, però che diavolo è a pagamento..... Speravo ci fossero i codici in giro da qualche parte.
x ilsensine
Diavolo di unit ne ho provate parecchie, però a voglia trovare quella giusta (ammesso che ce ne sia una... )
ilsensine
12-02-2003, 13:42
mmm non c'è, ho fatto una ricerca.
il ddk è "un pò troppo completo" per quello che ti serve, e tra l'altro non so neanche se contiene delle unit per il delphi, non saprei...
Tassadar
13-02-2003, 08:18
arrgh! :mad:
pasiensa, se c'è qualcun altro che ha qualche idea... :)
Hai provato a scrivere Uses IOCTL ?
http://www.google.it/search?q=IOCTL_STORAGE_EJECT_MEDIA+Delphi&ie=UTF-8&oe=UTF-8&hl=it&lr=
Tassadar
13-02-2003, 12:57
mmm no :)
Appena posso provo, poi vi faccio sapere. Se avete altre idee intanto... ;)
unit IOCTL;
//CONVERTED FROM IOCTL.INC (VISUAL DEVSTUDIO 5) - I'm a plagiat afterall
//not required - just a collection of numbers (so did with WINDOWS.PAS ;))
//this version not including a structure/record that might be needed
//any comments just send to me: aa, a_@geocities.com
interface
const
//DeviceType
File_Device_BEEP = $00000001;
File_Device_CD_ROM = $00000002;
File_Device_CD_ROM_File_System = $00000003;
File_Device_CONTROLLER = $00000004;
File_Device_DataLINK = $00000005;
File_Device_DFS = $00000006;
File_Device_Disk = $00000007;
File_Device_Disk_File_System = $00000008;
File_Device_File_System = $00000009;
File_Device_INPORT_PORT = $0000000A;
File_Device_KEYBOARD = $0000000B;
File_Device_MAILSLOT = $0000000C;
File_Device_MIDI_IN = $0000000D;
File_Device_MIDI_OUT = $0000000E;
File_Device_MOUSE = $0000000F;
File_Device_MULTI_UNC_PROVIDER = $00000010;
File_Device_NAMED_PIPE = $00000011;
File_Device_NETWORK = $00000012;
File_Device_NETWORK_BROWSER = $00000013;
File_Device_NETWORK_File_System = $00000014;
File_Device_NULL = $00000015;
File_Device_PARALLEL_PORT = $00000016;
File_Device_PHYSICAL_NETCARD = $00000017;
File_Device_PRINTER = $00000018;
File_Device_SCANNER = $00000019;
File_Device_SERIAL_MOUSE_PORT = $0000001A;
File_Device_SERIAL_PORT = $0000001B;
File_Device_SCREEN = $0000001C;
File_Device_SOUND = $0000001D;
File_Device_STREAMS = $0000001E;
File_Device_TAPE = $0000001F;
File_Device_TAPE_File_System = $00000020;
File_Device_TRANSPORT = $00000021;
File_Device_UNKNOWN = $00000022;
File_Device_VIDEO = $00000023;
File_Device_VIRTUAL_Disk = $00000024;
File_Device_WAVE_IN = $00000025;
File_Device_WAVE_OUT = $00000026;
File_Device_8042_PORT = $00000027;
File_Device_NETWORK_REDIRECTOR = $00000028;
File_Device_BATTERY = $00000029;
File_Device_BUS_EXTENDER = $0000002A;
File_Device_MODEM = $0000002B;
File_Device_VDM = $0000002C;
File_Device_Mass_Storage = $0000002D;
//Method
Method_Buffered = 0;
Method_IN_Direct = 1;
Method_OUT_Direct = 2;
Method_Neither = 3;
//Access
File_Any_Access = 0;
File_Read_Access = ($0001); // file & pipe
File_Write_Access = ($0002); // file & pipe
//FSCTL Access
File_Read_Data = File_Read_Access;
File_Write_Data = File_Write_Access;
//Storage
IOCTL_Storage_Base = File_Device_MASS_Storage; // $002D
IOCTL_Disk_Base = File_Device_Disk; // $0007
//Partition
Partition_ENTRY_UNUSED = $00; // Entry unused
Partition_FAT_12 = $01; // 12-bit FAT entries
Partition_XENIX_1 = $02; // Xenix
Partition_XENIX_2 = $03; // Xenix
Partition_FAT_16 = $04; // 16-bit FAT entries
Partition_EXTENDED = $05; // Extended Partition entry
Partition_HUGE = $06; // Huge Partition MS-DOS V4
Partition_IFS = $07; // IFS Partition
Partition_FAT32 = $0B; // FAT32
Partition_FAT32_XINT13 = $0C; // FAT32 using extended int13 services
Partition_XINT13 = $0E; // Win95 Partition using extended int13 services
Partition_XINT13_EXTENDED = $0F; // Same as type 5 but uses extended int13 services
Partition_PREP = $41; // PowerPC Reference Platform (PReP) Boot Partition
Partition_UNIX = $63; // Unix
VALID_NTFT = $C0; // NTFT uses high order bits
//IOCTL/FSCTL/SMART Code
IOCTL_Storage_Check_Verify: integer = 0;
IOCTL_Storage_Media_REMOVAL: integer = 0;
IOCTL_Storage_Eject_Media: integer = 0;
IOCTL_Storage_Load_Media: integer = 0;
IOCTL_Storage_RESERVE: integer = 0;
IOCTL_Storage_RELEASE: integer = 0;
IOCTL_Storage_Find_New_Devices: integer = 0;
IOCTL_Storage_Get_Media_Types: integer = 0;
IOCTL_Disk_Get_Drive_Geometry: integer = 0;
IOCTL_Disk_Get_Partition_Info: integer = 0;
IOCTL_Disk_Set_Partition_Info: integer = 0;
IOCTL_Disk_Get_Drive_Layout: integer = 0;
IOCTL_Disk_Set_Drive_Layout: integer = 0;
IOCTL_Disk_Verify: integer = 0;
IOCTL_Disk_Format_Tracks: integer = 0;
IOCTL_Disk_Reassign_Blocks: integer = 0;
IOCTL_Disk_Performance: integer = 0;
IOCTL_Disk_is_Writable: integer = 0;
IOCTL_Disk_Logging: integer = 0;
IOCTL_Disk_Format_Tracks_EX: integer = 0;
IOCTL_Disk_Histogram_Structure: integer = 0;
IOCTL_Disk_Histogram_Data: integer = 0;
IOCTL_Disk_Histogram_Reset: integer = 0;
IOCTL_Disk_Request_Structure: integer = 0;
IOCTL_Disk_Request_Data: integer = 0;
FSCTL_Lock_Volume: integer = 0;
FSCTL_Unlock_Volume: integer = 0;
FSCTL_Dismount_Volume: integer = 0;
FSCTL_Mount_DBLS_Volume: integer = 0;
FSCTL_Get_Compression: integer = 0;
FSCTL_Set_Compression: integer = 0;
FSCTL_Read_Compression: integer = 0;
FSCTL_Write_Compression: integer = 0;
SMART_Get_Version: integer = 0;
SMART_SEND_Drive_Command: integer = 0;
SMART_RCV_Drive_Data: integer = 0;
procedure Init;
implementation
function Ctl_Code(DeviceType, FuncNo, Method, Access: integer): integer;
begin
Result := (DeviceType shl 16) or (Access shl 14) or (FuncNo shl 2) or (Method)
end;
procedure Init;
begin
IOCTL_Storage_Check_Verify := Ctl_Code(IOCTL_Storage_Base, $0200, Method_Buffered, File_Read_Access);
IOCTL_Storage_Media_REMOVAL := Ctl_Code(IOCTL_Storage_Base, $0201, Method_Buffered, File_Read_Access);
IOCTL_Storage_Eject_Media := Ctl_Code(IOCTL_Storage_Base, $0202, Method_Buffered, File_Read_Access);
IOCTL_Storage_Load_Media := Ctl_Code(IOCTL_Storage_Base, $0203, Method_Buffered, File_Read_Access);
IOCTL_Storage_RESERVE := Ctl_Code(IOCTL_Storage_Base, $0204, Method_Buffered, File_Read_Access);
IOCTL_Storage_RELEASE := Ctl_Code(IOCTL_Storage_Base, $0205, Method_Buffered, File_Read_Access);
IOCTL_Storage_Find_New_Devices := Ctl_Code(IOCTL_Storage_Base, $0206, Method_Buffered, File_Read_Access);
IOCTL_Storage_Get_Media_Types := Ctl_Code(IOCTL_Storage_Base, $0300, Method_Buffered, File_Any_Access);
IOCTL_Disk_Get_Drive_Geometry := Ctl_Code(IOCTL_Disk_Base, $0000, Method_Buffered, File_Any_Access);
IOCTL_Disk_Get_Partition_Info := Ctl_Code(IOCTL_Disk_Base, $0001, Method_Buffered, File_Read_Access);
IOCTL_Disk_Set_Partition_Info := Ctl_Code(IOCTL_Disk_Base, $0002, Method_Buffered, File_Read_Access or File_Write_Access);
IOCTL_Disk_Get_Drive_Layout := Ctl_Code(IOCTL_Disk_Base, $0003, Method_Buffered, File_Read_Access);
IOCTL_Disk_Set_Drive_Layout := Ctl_Code(IOCTL_Disk_Base, $0004, Method_Buffered, File_Read_Access or File_Write_Access);
IOCTL_Disk_Verify := Ctl_Code(IOCTL_Disk_Base, $0005, Method_Buffered, File_Any_Access);
IOCTL_Disk_Format_Tracks := Ctl_Code(IOCTL_Disk_Base, $0006, Method_Buffered, File_Read_Access or File_Write_Access);
IOCTL_Disk_Reassign_Blocks := Ctl_Code(IOCTL_Disk_Base, $0007, Method_Buffered, File_Read_Access or File_Write_Access);
IOCTL_Disk_Performance := Ctl_Code(IOCTL_Disk_Base, $0008, Method_Buffered, File_Any_Access);
IOCTL_Disk_is_Writable := Ctl_Code(IOCTL_Disk_Base, $0009, Method_Buffered, File_Any_Access);
IOCTL_Disk_Logging := Ctl_Code(IOCTL_Disk_Base, $000A, Method_Buffered, File_Any_Access);
IOCTL_Disk_Format_Tracks_EX := Ctl_Code(IOCTL_Disk_Base, $000B, Method_Buffered, File_Read_Access or File_Write_Access);
IOCTL_Disk_Histogram_Structure := Ctl_Code(IOCTL_Disk_Base, $000C, Method_Buffered, File_Any_Access);
IOCTL_Disk_Histogram_Data := Ctl_Code(IOCTL_Disk_Base, $000D, Method_Buffered, File_Any_Access);
IOCTL_Disk_Histogram_Reset := Ctl_Code(IOCTL_Disk_Base, $000E, Method_Buffered, File_Any_Access);
IOCTL_Disk_Request_Structure := Ctl_Code(IOCTL_Disk_Base, $000F, Method_Buffered, File_Any_Access);
IOCTL_Disk_Request_Data := Ctl_Code(IOCTL_Disk_Base, $0010, Method_Buffered, File_Any_Access);
FSCTL_Lock_Volume := Ctl_Code(File_Device_File_System, 6, Method_Buffered, File_Any_Access);
FSCTL_Unlock_Volume := Ctl_Code(File_Device_File_System, 7, Method_Buffered, File_Any_Access);
FSCTL_Dismount_Volume := Ctl_Code(File_Device_File_System, 8, Method_Buffered, File_Any_Access);
FSCTL_Mount_DBLS_Volume := Ctl_Code(File_Device_File_System, 13, Method_Buffered, File_Any_Access);
FSCTL_Get_Compression := Ctl_Code(File_Device_File_System, 15, Method_Buffered, File_Any_Access);
FSCTL_Set_Compression := Ctl_Code(File_Device_File_System, 16, Method_Buffered, File_Read_Data or File_Write_Data);
FSCTL_Read_Compression := Ctl_Code(File_Device_File_System, 17, Method_Neither, File_Read_Data);
FSCTL_Write_Compression := Ctl_Code(File_Device_File_System, 18, Method_Neither, File_Write_Data);
SMART_Get_Version := CTL_CODE(IOCTL_Disk_Base, $0020, Method_Buffered, File_Read_Access);
SMART_SEND_Drive_Command := CTL_CODE(IOCTL_Disk_Base, $0021, Method_Buffered, File_Read_Access or File_Write_Access);
SMART_RCV_Drive_Data := CTL_CODE(IOCTL_Disk_Base, $0022, Method_Buffered, File_Read_Access or File_Write_Access);
end;
initialization
Init;
end.
Tassadar
13-02-2003, 13:44
Grazie Cionci, avanzi un birrino :cool:
Originally posted by "Tassadar"
Grazie Cionci, avanzi un birrino :cool:
Me lo segno:
Tassadar: una pinta di Tennets Scotch
:D
Tassadar
14-02-2003, 08:10
Andata per la Tennents ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.