union{
DWORD dwProcessId;
byte b[4];
}my_union;
HANDLE hSCManager,hService,hKey;
byte a;
char acDriverPath[255],*szProcessId="ProcessId";
if((hSCManager=OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE))!=NULL)
{
GetFullPathName("giveio.sys",sizeof(acDriverPath),acDriverPath,NULL);
if((hService=CreateService(hSCManager, "giveio", "Current Date and Time fetcher.", \
SERVICE_START + DELETE, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, \
SERVICE_ERROR_IGNORE, acDriverPath, NULL, NULL, NULL, NULL, NULL))!=NULL)
{
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, \
"SYSTEM\\CurrentControlSet\\Services\\giveio", \
0, KEY_CREATE_SUB_KEY + KEY_SET_VALUE,&hKey)==ERROR_SUCCESS)
{
my_union.dwProcessId=GetCurrentProcessId();
//sprintf(buf,"%x",dwProcessId);
if(RegSetValueEx(hKey,szProcessId,NULL,REG_DWORD,\
my_union.b,sizeof(DWORD))==ERROR_SUCCESS)
{
StartService(hService, 0, NULL);
//fOk++;
RegDeleteValue(hKey,szProcessId);
}
else
MessageBox(NULL,"Не могу добавить ProcessId в реестр","Месага",MB_ICONSTOP);
RegCloseKey(hKey);
}
else
MessageBox(NULL,"Не могу открыть реестр","Месага",MB_ICONSTOP);
DeleteService(hService);
CloseServiceHandle(hService);
}
else
MessageBox(NULL,"Не можу зарегит дрова","Месага",MB_ICONINFORMATION);
CloseServiceHandle(hService);
}
else
MessageBox(NULL,"Не могу соедениться с диспетчером управения служб","Месага",MB_ICONINFORMATION);
Помогите установить драйвер giveio.sys
Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
Цитата: DrEvil
Имеется драйвер GiveIO.sys. Есть ли у кого примерчик установки (а еще лучше и функций чтения/записи из/в порт) этого драйвера на Visual C++ 2008. Гуглил в нете, но нашел тока для Delphi :(
Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
на wasm.ru есть примерчик, правда только написан на asm
функции в драйвере Ke386IoSetAccessProcess и Ke386SetIoAccessMap вызываются один раз, после чего в твоей программе в порты можно читать/писать через asm инструкции in/out.
Цитата: DrEvil
Имеется драйвер GiveIO.sys. Есть ли у кого примерчик установки (а еще лучше и функций чтения/записи из/в порт) этого драйвера на Visual C++ 2008. Гуглил в нете, но нашел тока для Delphi :(
Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
Код:
giveio.sys, для преодоления такого типа ошибок у вас есть установка драйвера visual c ++ в вашей системе.
Существует ошибка драйвера