Einzelnen Beitrag anzeigen

NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: IOCTL von C nach Delphi portieren

  Alt 10. Mai 2007, 16:43
Das heißt, es könnte dann so aussehen...

Delphi-Quellcode:
const
     WDT_TYPE = 35001;

     WDT_DEVICE   = '\\.\WDT_DEVICE';
     WDT_DEVICE_NAME = '\Device\WDT_DEVICE';
     WDT_DOS_DEVICE_NAME = '\DosDevices\WDT_DEVICE';

     IOCTL_SYS_DIO_WRITE = (WDT_TYPE shl 16) or (2 shl 14) or ($805 shl 2) or 0;
     IOCTL_SYS_WDT_STOP = (WDT_TYPE shl 16) or (2 shl 14) or ($802 shl 2) or 0;

var
  Form1: TForm1;
  DriveHandle: THandle;
  n: DWord;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
    DriveHandle := CreateFile('\\.\WDT_DEVICE', GENERIC_READ OR GENERIC_WRITE, FILE_SHARE_READ OR
                                   FILE_SHARE_WRITE, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL OR
                                   FILE_FLAG_NO_BUFFERING, 0);
 if (DriveHandle > 0) then
 begin
      DeviceIoControl(DriveHandle, IOCTL_SYS_DIO_WRITE, NIL, sizeof('0xf'), NIL, 0, n, NIL);
      CloseHandle(DriveHandle);
 end
 else begin
     MessageDlg('Fehler, kein (gültiges) Handle!', mtWarning, [mbOK], 0);
 end;

end;
oder hab ich es jetzt voll nicht richtig verstanden?!?!
  Mit Zitat antworten Zitat