ctr_unit.pas

来自「delphi直接操作设备驱动程序源代码.」· PAS 代码 · 共 45 行

PAS
45
字号
unit ctr_unit;
interface
const
   // 设备类型定义
   File_Device_UNKNOWN = $00000022;
   Method_Buffered = 0;
   File_Any_Access = 0;
   File_Read_Access = ($0001);
   File_Write_Access = ($0002);
var
   IOCTL_PORTIO_OPENPORT: integer = 0;
   IOCTL_PORTIO_READPORT: integer = 0;
   IOCTL_PORTIO_WRITEPORT: integer = 0;
   IOCTL_PORTIO_CLOSEPORT: integer = 0;
type
   ULONG = Cardinal;
   PORTOPENPARAMS = record
      open_Address: ULONG;
      open_PortSize: ULONG;
      open_PortCount: ULONG;
   end;
   PORTREADPARAMS = record
      rd_Handle: ULONG;
      rd_Index: ULONG;
   end;
   PORTWRITEPARAMS = record
      wr_Handle: ULONG;
      wr_Index: ULONG;
      wr_Data: ULONG;
   end;
   PORTCLOSEPARAMS = record
         close_Handle: ULONG;
   end;
implementation
function Ctl_Code(DeviceType, FuncNo, Method, Access: integer): integer;
begin
   Result := (DeviceType shl 16) or (Access shl 14) or (FuncNo shl 2) or (Method)
end;
initialization
IOCTL_PORTIO_OPENPORT := Ctl_Code(FILE_DEVICE_UNKNOWN, $0, Method_Buffered, File_Any_Access);
IOCTL_PORTIO_READPORT := Ctl_Code(FILE_DEVICE_UNKNOWN, $1, Method_Buffered, File_Any_Access);
IOCTL_PORTIO_WRITEPORT := Ctl_Code(FILE_DEVICE_UNKNOWN, $2, Method_Buffered, File_Any_Access);
IOCTL_PORTIO_CLOSEPORT := Ctl_Code(FILE_DEVICE_UNKNOWN, $3, Method_Buffered, File_Any_Access);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?