Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Как использовать средства DDK в Delphi   Найти похожие ветки 

 
Th ©   (2002-10-08 21:09) [0]

Помогите плз кто знает!
Мне необходимо реализовать вот такой код в Delphi:

function OpenPorts;
type
plw=^longword;
var
PortHandle: THandle;
BytesReturned:plw;
err1,err2:boolean;
tgProcess:integer;
tgMask:byte;
IOCTL_SET_IOPM,IOCTL_ENABLE_IOPM_ON_PROCESSID:integer;

DevInfo:SP_Device_Info_Data;
DevNameSize:integer;
DevInfoSet:HDevInfo;
DevName:string;
DevDetailInfo:SP_Device_Interface_Detail_Data;
DevData:SP_Device_Interface_Data;
MemberIndex:integer;
begin
IOCTL_SET_IOPM:=CTL_CODE(_8SMCC_TYPE, $902, METHOD_BUFFERED, FILE_ANY_ACCESS);
IOCTL_ENABLE_IOPM_ON_PROCESSID:=CTL_CODE(_8SMCC_TYPE, $903, METHOD_BUFFERED, FILE_ANY_ACCESS);

DevInfoSet:=SetupDIGetClassDevs(pchar(_8SMCC1_ClassGUID),
0,
ProcessHWND,
DIGCF_DEVICEINTERFACE or DIGCF_PRESENT or DIGCF_PROFILE);

MemberIndex:=0;
DevData.cbSize:=sizeof(SP_Device_Interface_Data);
while SetupDIEnumDeviceInterfaces(DevInfoSet,
nil,
pchar(_8SMCC1_ClassGUID),
MemberIndex,
@DevData) and
(GetLastError<>ERROR_NO_MORE_ITEMS) do
begin
Inc(MemberIndex);
DevInfo.cbSize:=sizeof(SP_Device_Info_Data);
SetupDIGetDeviceInterfaceDetail(DevInfoSet,DevData,nil,0,DevNameSize,@DevInfo);

DevDetailInfo.cbSize:=sizeof(SP_Device_Interface_Detail_Data);
SetupDIGetDeviceInterfaceDetail(DevInfoSet,DevData,@DevDetailInfo,DevNameSize,DevNameSize,@DevInfo);

DevName:=string(DevDetailInfo.DevicePath);
end;

PortHandle:=CreateFile(PChar(DevName),
GENERIC_READ,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);

GetMem(BytesReturned,4);
err1:=DeviceIoControl(PortHandle,
IOCTL_ENABLE_IOPM_ON_PROCESSID,
@ProcessHWND,
4,
0,
4,
BytesReturned^,
0);

tgMask:=0; // Allows IO on all ports within the range of the Hole.
err2:=DeviceIoControl(PortHandle,
IOCTL_SET_IOPM,
@tgMask,
1,
nil,
0,
BytesReturned^,
nil);
result:=(PortHandle<>0)and err1 and err2;

FreeMem(BytesReturned,4);
CloseHandle(PortHandle);
end;


Delphi функций типа SetupDI... не понимает, равно как и структур данных.

Что надо сделать, чтобы понимала???


 
Ученик ©   (2002-10-08 22:30) [1]

ftp://delphi-jedi.org/api/SetupAPI.zip


 
Th ©   (2002-10-09 12:14) [2]

Пасиба!



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-27930
jackie
2002-11-27 08:28
2002.12.09
динамическая память


1-27949
AlexKr
2002-11-29 12:12
2002.12.09
Перенаправить вывод


7-28307
Senka
2002-10-04 15:58
2002.12.09
Как выполнить учет печати на принтере в Delphi6


4-28365
Nomad.kz
2002-10-23 14:58
2002.12.09
определить размер файла


14-28214
vok
2002-11-10 04:16
2002.12.09
Помогите с интегралами - крайне необходимо