Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6468
Последний выпуск: 19.06.2015

Помогите установить драйвер giveio.sys

17K
29 января 2008 года
DrEvil
11 / / 27.12.2006
Имеется драйвер GiveIO.sys. Есть ли у кого примерчик установки (а еще лучше и функций чтения/записи из/в порт) этого драйвера на Visual C++ 2008. Гуглил в нете, но нашел тока для Delphi :(

Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.
3.7K
29 января 2008 года
_lobster_
115 / / 10.04.2005
Цитата: DrEvil
Имеется драйвер GiveIO.sys. Есть ли у кого примерчик установки (а еще лучше и функций чтения/записи из/в порт) этого драйвера на Visual C++ 2008. Гуглил в нете, но нашел тока для Delphi :(

Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.



на wasm.ru есть примерчик, правда только написан на asm

353
01 февраля 2008 года
ШпиЁн
468 / / 19.02.2006
этот драйвер надо запустить как сервис. создаешь сервис с помощью CreateService с флагом SERVICE_KERNEL_DRIVER, запускаешь сервис. обращаешься к драйверу через CreateFile как к устройству.

функции в драйвере Ke386IoSetAccessProcess и Ke386SetIoAccessMap вызываются один раз, после чего в твоей программе в порты можно читать/писать через asm инструкции in/out.
3.7K
03 февраля 2008 года
_lobster_
115 / / 10.04.2005
Цитата: DrEvil
Имеется драйвер GiveIO.sys. Есть ли у кого примерчик установки (а еще лучше и функций чтения/записи из/в порт) этого драйвера на Visual C++ 2008. Гуглил в нете, но нашел тока для Delphi :(

Требуется установка именно из студии. Примеры установки путем копирования его в ...\windows\driver и правки реестра не нужны.



Код:
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);
100K
19 сентября
Anju
1 / / 19.09.2018
Существует ошибка драйвера giveio.sys, для преодоления такого типа ошибок у вас есть установка драйвера visual c ++ в вашей системе.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог