Registriert seit: 10. Mai 2007
124 Beiträge
Delphi 10 Seattle Professional
|
Re: IOCTL von C nach Delphi portieren
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?!?!
|
|
Zitat
|