Форум: "Система";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизКак использовать средства 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c