HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3631  
Старый 26.08.2009, 12:39
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами: 9679872

Репутация: 347
По умолчанию

ога при достаточно широком канале потоков может быть очень и очень много. CPU C2D + Win2k3 - не у всех такая производительность. Интересно что подумает об авторе программы человек у компа которого оперативной памяти допустим 128. И если софт пишется не только для себя то было бы разумно потратить пару часов на изучение неблокирующих сокетов - повышение производительности капитальное
 
Ответить с цитированием

  #3632  
Старый 26.08.2009, 15:36
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

если оперативы мало нада смотреть в сторону пула потоков. он как раз предназначен для балансирования потребления ресурсов\скорости работы потоков.

ps: вроде как в буст все планировали добавить. но чет так и не посмотрел есть он там или нет...
 
Ответить с цитированием

  #3633  
Старый 27.08.2009, 19:55
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
С нами: 10470131

Репутация: 142


По умолчанию

Всем привет.Очень нужен хороший учебник по си,поскольку в библиотеках не нашёл.Также компилятор не помешал бы.Есть что-нибудь хорошее(исключая древние компильки).
 
Ответить с цитированием

  #3634  
Старый 27.08.2009, 20:06
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
С нами: 10233548

Репутация: 1118


По умолчанию

gcc как компилятор

Последний раз редактировалось POS_troi; 27.08.2009 в 20:09..
 
Ответить с цитированием

  #3635  
Старый 27.08.2009, 21:12
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
С нами: 10470131

Репутация: 142


По умолчанию

Линукс как мечта.У меня винда.К тому же,в универе мы прогать бум на старье.А дома нужно нормальное...
 
Ответить с цитированием

  #3636  
Старый 27.08.2009, 22:31
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
С нами: 9702986

Репутация: 479
По умолчанию

Как лучше всего из программы в юзермоде вызвать функцию из моего драйвера?
Что будет если я например в XP SP3 сделаю int 2eh вместо SYSENTER?
 
Ответить с цитированием

  #3637  
Старый 27.08.2009, 23:33
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

2 ntldr
1) в DriverEntry пишеш
Код:
 NTSTATUS st;
 PCWSTR dDeviceName       = L"\\Device\\DRVNAME";
 PCWSTR dSymbolicLinkName = L"\\DosDevices\\DRVNAME";

 RtlInitUnicodeString(&DeviceName, dDeviceName);
 RtlInitUnicodeString(&SymbolicLinkName, dSymbolicLinkName);
 st = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_UNKNOWN, 0, FALSE,  &deviceObject);    
 if (NT_SUCCESS(st)) st=IoCreateSymbolicLink(&SymbolicLinkName, &DeviceName);  
 if (!NT_SUCCESS(st)) return STATUS_DRIVER_INTERNAL_ERROR;
 DriverObject->DriverUnload=DriverUnload;
 DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DriverDispatcher;
другими словами регаешь устройство.
DriverDispatcher - функция обработчик запросов к устройству. В ней ты будеш обрабатывать IOCTL запросы
типа
Код:
NTSTATUS DriverDispatcher(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
 NTSTATUS status=STATUS_SUCCESS;
 PIO_STACK_LOCATION irpStack;

 irpStack = IoGetCurrentIrpStackLocation (Irp);
 Irp->IoStatus.Information=0;
 if (irpStack->MajorFunction == IRP_MJ_DEVICE_CONTROL) 
  {
    if (irpStack->Parameters.DeviceIoControl.IoControlCode==IOCTL_QUERY)
     {
 	 DPRINT("QUERY");
тут ты делаеш всю обработку. Короче читай работу с дровами
    } else status = STATUS_INVALID_DEVICE_REQUEST;
  }
 Irp->IoStatus.Status = status;
 IoCompleteRequest(Irp,IO_NO_INCREMENT);
 return status;
}
А в проге открываеш файл
CreateFile("\\\\.\\DRVNAME) и через DeviceIoControl отправляй запросы дрову.
PS - IOCTL_QUERY это моя буфкция обработчик которая строится так:
#define IOCTL_QUERY CTL_CODE(FILE_DEVICE_UNKNOWN, 0x01, METHOD_OUT_DIRECT, FILE_ALL_ACCESS)
METHOD_OUT_DIRECT значит прямой доступ к выходному буферу(без использования промежуточного)
Это всё описано в книге Солдатов В.П. Программирование драйверов Windows.

2) врядли будет пахать int 2eh потому как он устанавливается как дань традициям, но всё равно юзается тока sysenter если винда начиная с XP и проц начиная с P2
 
Ответить с цитированием

Я
  #3638  
Старый 28.08.2009, 10:57
denisov21g21
Banned
Регистрация: 01.07.2009
Сообщений: 21
С нами: 8874516

Репутация: -5
По умолчанию Я

служба поддержки VDS manager
591-493-245
 
Ответить с цитированием

  #3639  
Старый 28.08.2009, 12:00
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами: 9017461

Репутация: 414


По умолчанию

Цитата:
Линукс как мечта.У меня винда.К тому же,в универе мы прогать бум на старье.А дома нужно нормальное...
mingw как порт gcc под винду )
 
Ответить с цитированием

  #3640  
Старый 28.08.2009, 13:06
Mr.Sylar
Новичок
Регистрация: 15.01.2009
Сообщений: 1
С нами: 9115261

Репутация: 0
Question

Народ, я совсем недавно начал изучать С++, объясните, что такое функция и как к ней обращаться заранее спасибо!!!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.