如何向驱动发送信息?
网上找的代码,总是出错
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是指针么?