Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

26.08.2009, 12:39
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме: 1777055
Репутация:
347
|
|
ога при достаточно широком канале потоков может быть очень и очень много. CPU C2D + Win2k3 - не у всех такая производительность. Интересно что подумает об авторе программы человек у компа которого оперативной памяти допустим 128. И если софт пишется не только для себя то было бы разумно потратить пару часов на изучение неблокирующих сокетов - повышение производительности капитальное
|
|
|

26.08.2009, 15:36
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
если оперативы мало нада смотреть в сторону пула потоков. он как раз предназначен для балансирования потребления ресурсов\скорости работы потоков.
ps: вроде как в буст все планировали добавить. но чет так и не посмотрел есть он там или нет...
|
|
|

27.08.2009, 19:55
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Всем привет.Очень нужен хороший учебник по си,поскольку в библиотеках не нашёл.Также компилятор не помешал бы.Есть что-нибудь хорошее(исключая древние компильки).
|
|
|

27.08.2009, 20:06
|
|
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
Провел на форуме: 3718311
Репутация:
1118
|
|
gcc как компилятор
Последний раз редактировалось POS_troi; 27.08.2009 в 20:09..
|
|
|

27.08.2009, 21:12
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Линукс как мечта.У меня винда.К тому же,в универе мы прогать бум на старье.А дома нужно нормальное...
|
|
|

27.08.2009, 22:31
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Как лучше всего из программы в юзермоде вызвать функцию из моего драйвера?
Что будет если я например в XP SP3 сделаю int 2eh вместо SYSENTER?
|
|
|

27.08.2009, 23:33
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
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
|
|
|

28.08.2009, 10:57
|
|
Banned
Регистрация: 01.07.2009
Сообщений: 21
Провел на форуме: 38138
Репутация:
-5
|
|
Я
служба поддержки VDS manager
591-493-245
|
|
|

28.08.2009, 12:00
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Линукс как мечта.У меня винда.К тому же,в универе мы прогать бум на старье.А дома нужно нормальное...
mingw как порт gcc под винду )
|
|
|

28.08.2009, 13:06
|
|
Новичок
Регистрация: 15.01.2009
Сообщений: 1
Провел на форуме: 7601
Репутация:
0
|
|
Народ, я совсем недавно начал изучать С++, объясните, что такое функция и как к ней обращаться заранее спасибо!!! 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|