Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Программирование драйверов Перепрограммировать I8259A: драйвер клавиатуры Доброе время суток, пишу драйвер клавиатуры, во время работы следующего кода при первом нажатии клавиши вызывается _irq1_handler, при следующих нажатиях, прерывание игнорируется и обработчик не вызывается use32 global _start extern kernel_main IRQ0_VECTOR equ 0x20 IRQ1_VECTOR equ IRQ0_VECTOR + 1 IRQ8_VECTOR equ 0x28 section .text _start: https://www.cyberforum.ru/ drivers-programming/ thread1504128.html Драйвер не выводит DbgPrint Программирование драйверов
Драйвер самый обычный: driver_template.cpp #include "StdAfx.h" #include "drv_common.h" PDRIVER_OBJECT DriverObject; NTSTATUS DriverEntry(IN PDRIVER_OBJECT driverObject, IN PUNICODE_STRING RegistryPath) { DbgPrint("Hello world!\n");
Программирование драйверов Написание драйвера для мобильного модема https://www.cyberforum.ru/ drivers-programming/ thread1499115.html
Уважаемые форумчане, кто занимался написанием драйверов для 3g либо 4g usb модема? Можете подсказать, к каким данным мы имеем доступ, то есть конкретно интересует возможность вывести в систему данные о сети (Cell ID, LAC, C1, C2, CRO)? Насколько я знаю, мобильный телефон на основе параметра вышки C2 решает переключиться ли ему к другой базовой станции. Возможно ли получить подобные данные от...
Программирование драйверов Перехват любой графической операции в Windows https://www.cyberforum.ru/ drivers-programming/ thread1498155.html
Как бы поймать в ring0 любую графический вывод. НАПРИМЕР ВЫВОД ТЕКСТА GDIPLUS не вызывает не DrvBitBlt, не (конечно) DrvTextOut. Даже mirror драйвера не видят этой операции (по крайней мере DDK example и DF Mirage Mirror Driver). Но как-то она его выводит, понятно что можно индивидуально подойти к каждой операции и перехватить все ф-ции. Но нет ли универсального способа, т.е. такая ф-ция которую...
Программирование драйверов Общение приложения и драйвера по именованному каналу
Здравствуйте. Пытаюсь наладить связь между приложением и драйвером по именованному каналу (named pipe). Код из приложения: ... // создаем именованный канал для чтения hNamedPipe = CreateNamedPipe( pipeName, // имя канала
Программирование драйверов Ищу драйвер для megapixel 10x digital zoom https://www.cyberforum.ru/ drivers-programming/ thread1496667.html
у кого нибудь есть драйвер для megapixel 10x digital zoom веб камера
Программирование драйверов Книга "Использование Microsoft WDM" https://www.cyberforum.ru/ drivers-programming/ thread1495151.html
Нашел у себя вышеупомянутую книгу авторства Уолтера Они, решил освоить программирование драйверов. Но год издательства 2007, и там разбирается ХР, хотя скоро выйдет полноценная десятка. Серьезны ли различия между программированием на ХР и сегодняшних версиях Окон?
Программирование драйверов Подпись драйвера
Коллеги, приветствую! Подскажите (кто имеет опыт), как официально подписать драйвер в MS? Куда заливать исходники или сам драйвер, что для этого надо и т.п. Спасибо!
Программирование драйверов Планировщик процессов windows 7 Пытаюсь написать что-то вроде антируткита, для windows 7. Пришел к тому, что нужно манипулировать со структурами планировщика. Читал на wasm'e статью ,как это делалось для XP. Собственно все сработало, правда пришлось допиливать, Теперь хотелось бы уметь тоже самое под windows 7. Собственно может кто-нибудь с этим помочь? Если есть какие-либо ссылки на эту тему, либо уже готовые решения, либо... https://www.cyberforum.ru/ drivers-programming/ thread1492316.html Программирование драйверов IoWriteErrorLogEntry пишет только ERROR сообщения в EventLog Windows? https://www.cyberforum.ru/ drivers-programming/ thread1490427.html
Коллеги, приветствую! У меня два вопроса: 1. IoWriteErrorLogEntry пишет только сообщения с Event Type - ERROR? Или есть возможность писать просто информативные сообщения? в UM можно юзать ReportEvent, которая позволяет писать любого типа мессаги. 2. Как можно программно в Kernel Mode, создать свою ветку в EventLog? Не очень юзабилити для админов юзать запись в события Windows. ...
USB device на хосте Программирование драйверов
Здравствуйте! Есть встраиваемое устройство с USB контроллером, который может работать как host и как клиентское устройство, на нем стоит windows, задача написать драйвер так, чтобы устройство работало как клиентское устройство USB и было видно при подключении как диск. Где можно посмотреть/подсмотреть USB интерфейс для такого драйвера?
Программирование драйверов Драйвер для отслеживания обращения к папкам https://www.cyberforum.ru/ drivers-programming/ thread1487853.html
Добрый вечер, форумчане! Мне нужно написать драйвер для отслеживания обращения к 2 папкам. Сам драйвер должен выполнять функцию блокировки - не давать доступ к папке и запрещать добавлять в эту папку другие папки и файлы, пока пользователь не закроет программу. Не з
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 742
28.07.2015, 15:30 0

Использование драйвера ftd2xx для програмирования микросхем - Программирование драйверов - Ответ 7918831

28.07.2015, 15:30. Показов 4150. Ответов 12
Метки (Все метки)

Ответ

ещё
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
//----------------------------------------------------------------------------
// функция декодировки информационных пакетов
// в случае ошибки true
bool DecodeInfoPack(void)
{
        // если стартовые байты ошибочны
        if( CheckStartByte() )
          return(ret_err);
        // проверка посылки, попадает ли она в разряд информационных
        // если нет выход
        if( (USBPackBuff[0x4] == TypeInitializat) ||
            (USBPackBuff[0x4] == TypeLoadSetting) )
        {
          DecodeBuff.type  = USBPackBuff[0x4];
          DecodeBuff.regim = USBPackBuff[0x5];
          DecodeBuff.sec   = DeCodeByte(USBPackBuff[0x6]);
          DecodeBuff.min   = DeCodeByte(USBPackBuff[0x7]);
          DecodeBuff.hour  = DeCodeByte(USBPackBuff[0x8]);
          DecodeBuff.dey   = DeCodeByte(USBPackBuff[0x9]);
          DecodeBuff.month = DeCodeByte(USBPackBuff[0xA]);
          DecodeBuff.year  = DeCodeByte(USBPackBuff[0xB]);
          DecodeBuff.strlo = USBPackBuff[0x12];
          DecodeBuff.strhi = USBPackBuff[0x13];
          DecodeBuff.duration = ((float)(USBPackBuff[0xF]))/100;
          DecodeBuff.period   =
            ((float)(USBPackBuff[0x0D] + 256 * USBPackBuff[0x0E]))/100;
          DecodeBuff.volt =
            ((float)USBPackBuff[0x0C] * UMult)/UDiv;
 
          switch(USBPackBuff[0x11])
          {
            case 0x01:
            {
              DecodeBuff.polar = " + ";
              break;
            }
            case 0x02:
            {
              DecodeBuff.polar = " - ";
              break;
            }
            case 0x31:
            {
              DecodeBuff.polar = "+/-";
              break;
            }
            default:
            {
              DecodeBuff.polar = "???";
            }
          }
          if( USBPackBuff[0x10] == 0 )
          {
            DecodeBuff.numpack = "неограниченно";
          }
          else
          {
            DecodeBuff.numpack = IntToStr(USBPackBuff[0x10]);
          }
        }
        else
        {
          return(ret_err);   // пакет не информационный
        }
        return(ret_ok); // декодирование произведено успешно
}
//----------------------------------------------------------------------------
// функция синхронной записи в USB порт
// если все в порядке возвращает ret_ok (false)
bool USBWrite(void)
{
        int ftByteReal = 0;      // число реально переданных байт
 
        if( ftHandISF != NULL )  // если порт открыт
        {
          // инициализация посылка запрос
          if( FT_W32_WriteFile(ftHandISF,USBPackBuff,
                               SizePack,&DWORD(ftByteReal),NULL) )
          {
            if( SizePack != ftByteReal ) // ошибка по таймауту
            {
              AnsiString ftErrMess = "Ошибка передачи данных.";
              Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
                MB_ICONERROR);
              // закрытие USB
              USBClose();
              // выходим
              return(ret_err);
            }
          }
          else // ошибка операции записи в порт
          {
            AnsiString ftErrMess = "Ошибка передачи данных.";
            Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
              MB_ICONERROR);
            // закрытие USB
            USBClose();
            // выходим
            return(ret_err);
          }
        }
        else // если USB порт не открыт
        {
          AnsiString ftErrMess = "USB порт не открыт.";
          Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
            MB_ICONERROR);
          // выходим
          return(ret_err);
        }
        // передача состоялась
        return(ret_ok);
}
//----------------------------------------------------------------------------
//  открытие и настройка порта для асинхронного режима
//      те  Open a device for overlapped I/O
bool USBOpenASinhro(void)
{
        FT_STATUS ftStat;
        FTDCB ftDCB;            // структура настроек USB порта
 
        // закрытие USB порта если он открыт
        if( ftHandISF != NULL )
        {
          if( USBClose() ) // если ошибка закрытия порта
          {
            return(ret_err);
          }
        }
        // откраваем устройство с выбранным серийным номером
        // для асинхронного режима, по серийному номеру
        ftHandISF =
          FT_W32_CreateFile(USBSerNumb.c_str(),GENERIC_READ|GENERIC_WRITE,
                            0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|
                            FILE_FLAG_OVERLAPPED|FT_OPEN_BY_SERIAL_NUMBER,0);
        // в случае ошибки открытия порта
        if( ftHandISF == INVALID_HANDLE_VALUE )
        {
          AnsiString ftErrMess = "USB порт не открывается.";
          Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
            MB_ICONERROR);
          ftHandISF = NULL;
          // выход по ошибке
          return(ret_err);
        }
 
        // чтение текущих настроек
        if( !(FT_W32_GetCommState(ftHandISF,&ftDCB)) ) // в случае ошибки
        {
          // закрытие USB
          USBClose();
          // сообщение об ошибке
          AnsiString ftErrMess = "Ошибка чтения USB настроек";
          Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
            MB_ICONERROR);
          // выход по ошибке
          return(ret_err);
        }
        // редактирование настроек под прибор ISF
        ftDCB.BaudRate = USBSpeed;      // скорость передачи данных
        ftDCB.StopBits = FT_STOP_BITS_1;// один стоповый бит
        ftDCB.ByteSize = FT_BITS_8;     // число битов данных
        ftDCB.fParity  = false;         // проверки четности нет
        ftDCB.Parity   = FT_PARITY_NONE;// тип проверки четн. нет
 
        // запись новых настроек в порт
        if( !(FT_W32_SetCommState(ftHandISF,&ftDCB)) ) // в случае ошибки
        {
          // закрытие USB
          USBClose();
          // сообщение об ошибке
          AnsiString ftErrMess = "Ошибка записи USB настроек";
          Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
            MB_ICONERROR);
          // выход по ошибке
          return(ret_err);
        }
 
        //--------------------------------------------------
        // очистка буфера приема передачи USB порта
        if ( !(FT_W32_PurgeComm(ftHandISF,PURGE_TXCLEAR|PURGE_RXCLEAR|
                                          PURGE_TXABORT|PURGE_RXABORT)) )
        {
          // в случае ошибки
          // закрытие USB
          USBClose();
          // сообщение об ошибке
          AnsiString ftErrMess = "Ошибка очистки буфера USB порта";
          Application->MessageBox(ftErrMess.c_str(),MBCapErr.c_str(),MB_OK +
            MB_ICONERROR);
          // выход по ошибке
          return(ret_err);
        }
        // выход в случае полного успеха открытия USB порта
        return(ret_ok);
}


Вернуться к обсуждению:
Использование драйвера ftd2xx для програмирования микросхем Программирование драйверов
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2015, 15:30
Готовые ответы и решения:

Использование микросхем FTDI
Через USB порт чтение данных

Святая инквизиция для микросхем
На волне законов о персональных данных и прочего мракобесия родилось следующее ТЗ. Есть одна...

Накидайте названий микросхем SRAM для STM32F407
Интересует память объёмом 1мегабайт (512 ячеек по 16бит или около того) или больше, которую можно...

Нужно найти техническую характеристику для микросхем серий
Помогите найти техническую характеристику для микросхем серий : КР1564ТЛ3 КР573РФ2 КР1564КП7 ...

12
28.07.2015, 15:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2015, 15:30
Помогаю со студенческими работами здесь

Ноут для програмирования
Заканчиваю техникум и думаю поступать в универ. нужно покупать ноут ПОдскажите какие хар-ки...

Программы для програмирования на С++
Использую линукс убунту.Подскажите приложение похожее на Object Pascal.Тип чтоб кнопки тягать и...

Прога для програмирования
Люди добрые подскажите какую нибудь прогу чтобы просто учиться програмировать на plsql, ато у меня...

Программа для програмирования
Где можно скачать Android SDK? а то нашел какую то версию,она вообще не тошная.где сами...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru