CTL_CODEマクロはそうIOCTL_ATA_PASS_THROUGH
のconstのデルファイ当量がこの
uses
Windows;
const
//#define IOCTL_ATA_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
IOCTL_SCSI_BASE = FILE_DEVICE_CONTROLLER;
IOCTL_ATA_PASS_THROUGH= (IOCTL_SCSI_BASE shl 16) or ((FILE_READ_ACCESS or FILE_WRITE_ACCESS) shl 14) or ($040B shl 2) or (METHOD_BUFFERED);
ノートのようなものである
#define CTL_CODE(DeviceType, Function, Method, Access) (
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method)
)
次のように定義されますUnfortunallyデルファイはマクロをサポートしていませんが、あなたが作成することができます関数
function CTL_CODE(DeviceType, _Function, Method, Access: Cardinal): Cardinal;
begin
Result := (DeviceType shl 16) or (Access Shl 14) or (_Function shl 2) or (Method);
end;
と値をruで取得するこのようにn時間になる。
Flag:=CTL_CODE(IOCTL_SCSI_BASE, $040B , METHOD_BUFFERED, (FILE_READ_ACCESS or FILE_WRITE_ACCESS));
でも、Delphiでこのようなものを使用できますか?そのドライバーは具体的ではありませんか? (+1) – TLama
はい、デルファイからこれを使用して、たとえばS.M.A.R.Tを再評価することができます。 hddのデータ。 – RRUZ