Thema: Delphi CD-Laufwerkslade offen?

Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#5

Re: CD-Laufwerkslade offen?

  Alt 23. Dez 2006, 22:40
Bei der Durchsicht der Projekte habe ich im Projekt Freeburner/Burnlibrary eine Konstante dtMT_DOOROPEN = $71 bzw MT_DOOROPEN = $71; gefunden. Dazu habe ich bisher nur herausgefunden, dass es sich um ATAPI-Konstante handeln müsste.

Als Lösungsansätze kämen meiner Ansicht in Frage:

IODeviceControl
================


Verschiedene IOCTLs geben einen IO_Status_Block zurück. Desweiteren wird der Status stets als Ergebnis der Funktion DeviveIOControl zurückgegeben. Hier werden die Werte STATUS_SUCCESS (0 - Der Vorgang wurde erfolgreich beendet), STATUS_NO_MEDIA_IN_DEVICE und STATUS_DEVICE_NOT_READY (21 - Das Gerät ist nicht bereit) benötigt. Dafür bietet sich zum Beispiel IOCTL_CDROM_CHECK_VERIFY an.

Für die Funktion sind lediglich Leserechte notwendig, sodass sie auch bei eingeschränkten Usern funktionieren sollte.

Allerdings hat diese Funktion nicht den gewünschten Erfolg gebracht.

Mechanismus
===========


In der TIsoLib bin ich auf eine Funktion gestossen, welche den Status des Mechanismus eines Changers abfragt. Der MechanismStatus beinhaltet den MechanismStatusHeader mit dem Wert MechanismState_DoorOpen_CurrentSlot, welcher den Status der Schublade angibt.

Da die Funktion IOCTL_SCSI_PASS_THROUGH_DIRECT Schreibrechte (Burn Rights) benötigt, funktioniert es standardmäßig nur bei Administratoren. Eingeschränkten bzw Hauptbenutzern müssen die entsprechenden Rechte erteilt werden.

WMI
===


Bei Changern gibt es
Zitat:
WMI_CHANGER_PROBLEM_DEVICE_ERROR
- ChangerPerformDiagnostics
- CHANGER_DEVICE_PROBLEM_TYPE
- DeviceProblemDoorOpen = Indicates the changer's door is open.
Damit kann ich allerdings im Moment wenig anfangen.

Die Sourcen anbei. Kompiliert mit Turbo Delphi Win32 Explorer unter Win2000.
Angehängte Dateien
Dateityp: rar cdromdoor_mech_713.rar (174,6 KB, 33x aufgerufen)
Dateityp: rar cdromdoor_ioctl_424.rar (173,2 KB, 28x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat