Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ошибка  (Прочитано 9263 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mfcer__
Команда клуба

ru
Offline Offline

« : 27-07-2004 22:42 » 

Добрый день!

Читаю цикл статей Грома о написании драйвера. В 3 части сказано добавить в хеадер прототипы функции и тела функций после DriverEntry. Так и сделал, а компилятор ругается


Цитата
#include "precomp.h"

pch_hdr.src
.\passthru.h(392) : error C2146: syntax error : missing ')' before identifier 'Irp'
.\passthru.h(392) : error C2081: 'PIRP' : name in formal parameter list illegal
.\passthru.h(392) : error C2061: syntax error : identifier 'Irp'
.\passthru.h(392) : error C2059: syntax error : ';'
.\passthru.h(392) : error C2059: syntax error : ')'


 :arrow:  Еще один вопросик:
как инсталировать драйвер чтобы его можно было использовать из приложения?
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #1 : 28-07-2004 01:46 » 

Можно ли вообще где нибудь скачать исходники с результатами статьи...
Спасибо.
Записан
_AV_
Гость
« Ответ #2 : 28-07-2004 07:01 » 

Ты не видишь стандартных ddk-шных includ'ов (PIRP).

Твоя проблема либо в том, что ты не включил ntddk.h
или же в _последовательности_ подключения заголовочных файлов.

Во втором случае, если ты работаешь с MS VC, то зайди в tools->options->directories, проверь

1) добавлена ли у тебя в качестве директории для поиска заголовков директория $ntddk/ddk/inc
2) находится ли данная директория в самом верху списка.

тоже повтори для  $ntddk/lib

Если ты работаешь непосредственно с ddk - проверь, добавил ли ты в переменные окружения INCLUDE и LIB вышеуказанные директории,
затем проверь свой makefile
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #3 : 28-07-2004 11:15 » 

все проблема решена просто
замена PIRP -> struct _IRP*

Возникли другие трудности:
не хочет компилить строки
Код:
//Регистрируем их 
Status = NdisMRegisterDevice( WrapperHandle,
&ntDeviceName,
&win32DeviceName,
MajorFunctions,
&deviceObject,
&GlobalData.NdisDeviceHandle );
// проверяем статус
if( Status != NDIS_STATUS_SUCCESS )
{
if(GlobalData.ProtHandle)
NdisDeregisterProtocol( &Status, GlobalData.ProtHandle );

if( GlobalData.NdisDeviceHandle )
NdisMDeregisterDevice( GlobalData.NdisDeviceHandle );

if( WrapperHandle )
NdisTerminateWrapper( WrapperHandle, NULL );
return (Status);
}

// set access method into deviceObject ( received from NdisMRegisterDevice() )
// объявление буферизации для связывающих операций
deviceObject->Flags |= DO_BUFFERED_IO;

// все.

Говорит что не знает что такое DO_BUFFERED_IO, GlobalData и прочее   Так больше нельзя...
« Последнее редактирование: 30-11-2007 21:34 от Алексей1153++ » Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #4 : 28-07-2004 22:32 » 

Помощь еще нужна ...  

Со всем разобрался кроме этой строчки
 
Код:

deviceObject->Flags |= DO_BUFFERED_IO;
 


Говорит что не знает что такое Flags
passthru.c(186) : error C2037: left of 'Flags' specifies undefined struct/union '_DEVICE_OBJECT'
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #5 : 28-07-2004 22:36 » 

Цитата: _AV_
Если ты работаешь непосредственно с ddk - проверь, добавил ли ты в переменные окружения INCLUDE и LIB вышеуказанные директории,
затем проверь свой makefile


Можно здесь поподробнее... Я не совсем понял как это сделать... Жаль
Записан
_AV_
Гость
« Ответ #6 : 29-07-2004 10:34 » 

для win2k::
мой компьютер -> свойства->дополнительно->переменные среды...
и т.д.
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #7 : 29-07-2004 18:21 » 

Цитата: _AV_
для win2k::
мой компьютер -> свойства->дополнительно->переменные среды...
и т.д.


А что там дальше изменять/добавлять???
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #8 : 30-07-2004 17:23 » 

хелп !!!
Записан
_AV_
Гость
« Ответ #9 : 02-08-2004 08:05 » 

Только ради того, что ты из Питера Улыбаюсь

Находишь переменные INCLUDE и LIB (или LIBRARY - не помню) и добавляешь в них путем постановки в конце уже заявленного списка ';' и дописывания директории хедоров и библиотек для DDK как было указано выше.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines