{******************************************************************************} { } { IO Events API interface Unit for Object Pascal } { } { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } { Corporation. All Rights Reserved. } { } { The original file is: Ioevent.h, released June 2000. The original Pascal } { code is: IoEvent.pas, released December 2000. The initial developer of the } { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } { } { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } { Marcel van Brakel. All Rights Reserved. } { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { } { You may retrieve the latest version of this file at the Project JEDI } { APILIB home page, located at http://jedi-apilib.sourceforge.net } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {******************************************************************************} // $Id: JwaIoEvent.pas,v 1.8 2007/09/05 11:58:50 dezipaitor Exp $ {$IFNDEF JWA_OMIT_SECTIONS} unit JwaIoEvent; {$WEAKPACKAGEUNIT} {$ENDIF JWA_OMIT_SECTIONS} {$HPPEMIT ''} {$HPPEMIT '#include "Ioevent.h"'} {$HPPEMIT ''} {$IFNDEF JWA_OMIT_SECTIONS} {$I jediapilib.inc} interface uses JwaWinType; {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_IMPLEMENTATIONSECTION} // // Label change event. This event is signalled upon successful completion // of a label change. There is no additional data. // const GUID_IO_VOLUME_CHANGE: TGUID = (D1:$7373654a; D2:$812a; D3:$11d0; D4:($be, $c7, $08, $00, $2b, $e2, $09, $2f)); {$EXTERNALSYM GUID_IO_VOLUME_CHANGE} // // Volume dismount event. This event is signalled when an attempt is made to // dismount a volume. There is no additional data. Note that this will not // necessarily be preceded by a GUID_IO_VOLUME_LOCK notification. // GUID_IO_VOLUME_DISMOUNT: TGUID = (D1:$d16a55e8; D2:$1059; D3:$11d2; D4:($8f, $fd, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_DISMOUNT} // // Volume dismount failed event. This event is signalled when a volume dismount fails. // There is no additional data. // GUID_IO_VOLUME_DISMOUNT_FAILED: TGUID = (D1:$e3c5b178; D2:$105d; D3:$11d2; D4:($8f, $fd, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_DISMOUNT_FAILED} // // Volume mount event. This event is signalled when a volume mount occurs. // There is no additional data. // GUID_IO_VOLUME_MOUNT: TGUID = (D1:$b5804878; D2:$1a96; D3:$11d2; D4:($8f, $fd, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_MOUNT} // // Volume lock event. This event is signalled when an attempt is made to // lock a volume. There is no additional data. // GUID_IO_VOLUME_LOCK: TGUID = (D1:$50708874; D2:$c9af; D3:$11d1; D4:($8f, $ef, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_LOCK} // // Volume lock failed event. This event is signalled when an attempt is made to // lock a volume, but it fails. There is no additional data. // GUID_IO_VOLUME_LOCK_FAILED: TGUID = (D1:$ae2eed10; D2:$0ba8; D3:$11d2; D4:($8f, $fb, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_LOCK_FAILED} // // Volume unlock event. This event is signalled when an attempt is made to // unlock a volume. There is no additional data. // GUID_IO_VOLUME_UNLOCK: TGUID = (D1:$9a8c3d68; D2:$d0cb; D3:$11d1; D4:($8f, $ef, $00, $a0, $c9, $a0, $6d, $32)); {$EXTERNALSYM GUID_IO_VOLUME_UNLOCK} // // Volume name change. This event is signalled when the list of persistent // names (like drive letters) for a volume changes. There is no additional // data. // GUID_IO_VOLUME_NAME_CHANGE: TGUID = (D1:$2de97f83; D2:$4c06; D3:$11d2; D4:($a5, $32, $0, $60, $97, $13, $5, $5a)); {$EXTERNALSYM GUID_IO_VOLUME_NAME_CHANGE} // // Volume physical configuration change. This event is signalled when the // physical makeup or current physical state of the volume changes. // GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE: TGUID = (D1:$2de97f84; D2:$4c06; D3:$11d2; D4:($a5, $32, $0, $60, $97, $13, $5, $5a)); {$EXTERNALSYM GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE} // // Volume device interface. This is a device interface GUID that appears // when the device object associated with a volume is created and disappears // when the device object associated with the volume is destroyed. // GUID_IO_VOLUME_DEVICE_INTERFACE: TGUID = (D1:$53f5630d; D2:$b6bf; D3:$11d0; D4:($94, $f2, $00, $a0, $c9, $1e, $fb, $8b)); {$EXTERNALSYM GUID_IO_VOLUME_DEVICE_INTERFACE} // // Sent when the removable media is changed (added, removed) from a device // (such as a CDROM, tape, changer, etc). // // The additional data is a DWORD representing the data event. // GUID_IO_MEDIA_ARRIVAL: TGUID = (D1:$d07433c0; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_IO_MEDIA_ARRIVAL} GUID_IO_MEDIA_REMOVAL: TGUID = (D1:$d07433c1; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_IO_MEDIA_REMOVAL} // // Sent when the media is returning that it is not ready right now, but will // be ready soon. This can be because the drive has spun down to save power // or because new media has been inserted but is not ready for access yet. // GUID_IO_DEVICE_BECOMING_READY: TGUID = (D1:$d07433f0; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_IO_DEVICE_BECOMING_READY} type _DEVICE_EVENT_BECOMING_READY = record Version: ULONG; Reason: ULONG; Estimated100msToReady: ULONG; end; {$EXTERNALSYM _DEVICE_EVENT_BECOMING_READY} DEVICE_EVENT_BECOMING_READY = _DEVICE_EVENT_BECOMING_READY; {$EXTERNALSYM DEVICE_EVENT_BECOMING_READY} PDEVICE_EVENT_BECOMING_READY = ^DEVICE_EVENT_BECOMING_READY; {$EXTERNALSYM PDEVICE_EVENT_BECOMING_READY} TDeviceEventBecomingReady = DEVICE_EVENT_BECOMING_READY; PDeviceEventBecomingReady = PDEVICE_EVENT_BECOMING_READY; // // Sent when the user presses the eject button on the front of the drive, // or when other buttons on the front are pressed via GESN command polling // (GESN support to be added) // const GUID_IO_DEVICE_EXTERNAL_REQUEST: TGUID = (D1:$d07433d0; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_IO_DEVICE_EXTERNAL_REQUEST} GUID_IO_MEDIA_EJECT_REQUEST: TGUID = (D1:$d07433d1; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_IO_MEDIA_EJECT_REQUEST} type PDEVICE_EVENT_EXTERNAL_REQUEST = ^DEVICE_EVENT_EXTERNAL_REQUEST; {$EXTERNALSYM PDEVICE_EVENT_EXTERNAL_REQUEST} _DEVICE_EVENT_EXTERNAL_REQUEST = record Version: ULONG; DeviceClass: ULONG; // 0 == MMC Storage Devices ButtonStatus: USHORT; // 1 == down, 2 == up Request: USHORT; SystemTime: LARGE_INTEGER; // for time-related info end; {$EXTERNALSYM _DEVICE_EVENT_EXTERNAL_REQUEST} DEVICE_EVENT_EXTERNAL_REQUEST = _DEVICE_EVENT_EXTERNAL_REQUEST; {$EXTERNALSYM DEVICE_EVENT_EXTERNAL_REQUEST} TDeviceEventExternalRequest = DEVICE_EVENT_EXTERNAL_REQUEST; PDeviceEventExternalRequest = PDEVICE_EVENT_EXTERNAL_REQUEST; // // Sent when a tape drive requires cleaning // const GUID_IO_DRIVE_REQUIRES_CLEANING: TGUID = (D1:$7207877c; D2:$90ed; D3:$44e5; D4:($a0, $0, $81, $42, $8d, $4c, $79, $bb)); {$EXTERNALSYM GUID_IO_DRIVE_REQUIRES_CLEANING} // // Sent when a tape is erased // GUID_IO_TAPE_ERASE: TGUID = (D1:$852d11eb; D2:$4bb8; D3:$4507; D4:($9d, $9b, $41, $7c, $c2, $b1, $b4, $38)); {$EXTERNALSYM GUID_IO_TAPE_ERASE} type _DEVICE_EVENT_GENERIC_DATA = record EventNumber: ULONG; end; {$EXTERNALSYM _DEVICE_EVENT_GENERIC_DATA} DEVICE_EVENT_GENERIC_DATA = _DEVICE_EVENT_GENERIC_DATA; {$EXTERNALSYM DEVICE_EVENT_GENERIC_DATA} PDEVICE_EVENT_GENERIC_DATA = ^DEVICE_EVENT_GENERIC_DATA; {$EXTERNALSYM PDEVICE_EVENT_GENERIC_DATA} TDeviceEventGenericData = DEVICE_EVENT_GENERIC_DATA; PDeviceEventGenericData = PDEVICE_EVENT_GENERIC_DATA; // // Represents any asynchronous notification coming from a device driver whose // notification protocol is RBC // Additional data is provided const GUID_DEVICE_EVENT_RBC: TGUID = (D1:$d0744792; D2:$a98e; D3:$11d2; D4:($91, $7a, $00, $a0, $c9, $06, $8f, $f3)); {$EXTERNALSYM GUID_DEVICE_EVENT_RBC} type _DEVICE_EVENT_RBC_DATA = record EventNumber: ULONG; SenseQualifier: UCHAR; SenseCode: UCHAR; SenseKey: UCHAR; Reserved: UCHAR; Information: ULONG; end; {$EXTERNALSYM _DEVICE_EVENT_RBC_DATA} DEVICE_EVENT_RBC_DATA = _DEVICE_EVENT_RBC_DATA; {$EXTERNALSYM DEVICE_EVENT_RBC_DATA} PDEVICE_EVENT_RBC_DATA = ^DEVICE_EVENT_RBC_DATA; {$EXTERNALSYM PDEVICE_EVENT_RBC_DATA} TDeviceEventRbcData = DEVICE_EVENT_RBC_DATA; PDeviceEventRbcData = PDEVICE_EVENT_RBC_DATA; // // A clone of this disk has just arrived in the system. // const GUID_IO_DISK_CLONE_ARRIVAL: TGUID = (D1:$6a61885b; D2:$7c39; D3:$43dd; D4:($9b, $56, $b8, $ac, $22, $a5, $49, $aa)); {$EXTERNALSYM GUID_IO_DISK_CLONE_ARRIVAL} type _GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION = record DiskNumber: ULONG; // The disk number of the new disk arriving in the system. end; {$EXTERNALSYM _GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION} GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION = _GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION; {$EXTERNALSYM GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION} PGUID_IO_DISK_CLONE_ARRIVAL_INFORMATION = ^GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION; {$EXTERNALSYM PGUID_IO_DISK_CLONE_ARRIVAL_INFORMATION} TGuidIoDiskCloneArrivalInformation = GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION; PGuidIoDiskCloneArrivalInformation = PGUID_IO_DISK_CLONE_ARRIVAL_INFORMATION; // // The disk layout has changed // const GUID_IO_DISK_LAYOUT_CHANGE: TGUID = (D1:$11dff54c; D2:$8469; D3:$41f9; D4:($b3, $de, $ef, $83, $64, $87, $c5, $4a)); {$EXTERNALSYM GUID_IO_DISK_LAYOUT_CHANGE} //your interface declarations here {$ENDIF JWA_IMPLEMENTATIONSECTION} {$IFNDEF JWA_OMIT_SECTIONS} implementation //uses ... {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_INTERFACESECTION} //your implementation here {$ENDIF JWA_INTERFACESECTION} {$IFNDEF JWA_OMIT_SECTIONS} end. {$ENDIF JWA_OMIT_SECTIONS}