首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么向驱动发送信息

2012-03-04 
如何向驱动发送信息?网上找的代码,总是出错hSCManager : OpenSCManager(nil, nil, SC_MANAGER_CREATE_SER

如何向驱动发送信息?
网上找的代码,总是出错


hSCManager := OpenSCManager(nil, nil, SC_MANAGER_CREATE_SERVICE);
hService := CreateService(hSCManager, 'VirtToPhys', 'Virtual To Physical Address Converter', SERVICE_START + SERVICE_STOP + _DELETE, SERVICE_KERNEL_DRIVER,SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, pchar(DriverDir+'HdHook.sys'), nil, nil, nil, nil, nil);

StartService(hService, 0,lptmp);

hdDevice:=CreateFile(pchar('\\.\VirtToPhys'),GENERIC_READ+GENERIC_WRITE,
FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);

//////这里的\\.\VirtToPhys是应该是前面的服务名还是驱动文件完整的路径啊??

DeviceIoControl(hdDevice,HDHOOK_SETSELFVALUE,pchar(szBuffer),DISK_SERIAL_BUFF_LENGTH, nil, 0, BytesReturned, nil) ; //这也出错了,返回FALSE

[解决办法]
了解一下windows系统消息模式,
[解决办法]
\.\VirtToPhys'是符号连接,不是什么服务名,你要找IoCreateSymbolicLink函数
DeviceIoControl返回的长度是一个指针,BytesReturned是指针么?

热点排行