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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: callback и с чем его едят  (Прочитано 7223 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
bems
Гость
« : 17-01-2006 18:34 » 

Программы, которые отображают пространство имен менеджера объектов (NTObjects - smidgeonsoft.com или winobj - sysinternals.com) показывают объекты типа callback.
В дескрипторе контекста безопасности есть что-то такое

Ace1
Ace1.Header.AceType = ACCESS_ALLOWED
Ace1.Header.AceFlags = 00
Ace1.Header.AceSize = 0014
Ace1.Mask = 001F0001
DELETE
READ_CONTROL
WRITE_DAC
WRITE_OWNER
SYNCHRONIZE
Ace1.Sid = S-1-5-18 (NT AUTHORITY/SYSTEM)

Может кто-нибудь знает как можно SYNCHRONIZE с одним из существующих объектов этого типа?
Или вообще - как они создаются?
(И лучше бы из пользовательского режима)
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #1 : 23-01-2006 12:40 » 

смотри ф-цию ExRegisterCallback и все свзязвнные с ней ф-ции.
Работает она из кернел мода, так как там адрес ф-ции надо передать, передай ей ф-цию которая переводит Event в сигнальное состояния, а на этом Event ты можешь ждать в юзер моде.
Записан
bems
Гость
« Ответ #2 : 23-01-2006 14:50 » 

Я понял, что это то, что мне нужно, но я уже 4 дня смотрю на hal.dll, где она используется и нифига не понимаю. Меня интерисуют параметры. Может она где-то задокументирована? (я в это не очень верю)

  push   L8002861A
        lea   eax,[ebp-0Ch]
        push   eax
        call   [ntoskrnl.exe!RtlInitUnicodeString]
        push   00000001h
        lea   eax,[ebp-0Ch]
        mov   [ebp-1Ch],eax
        push   ebx
        lea   eax,[ebp-24h]
        push   eax
        lea   eax,[ebp-04h]
        push   eax
        mov   dword ptr [ebp-24h],00000018h
        mov   [ebp-20h],ebx
        mov   dword ptr [ebp-18h],00000050h
        mov   [ebp-14h],ebx
        mov   [ebp-10h],ebx
        call   [ntoskrnl.exe!ExCreateCallback]
        push   ebx
        push   L80016308
        push   [ebp-04h]
        call   [ntoskrnl.exe!ExRegisterCallback]
Записан
bems
Гость
« Ответ #3 : 23-01-2006 14:52 » new

Если я правильно понял, перед использованием ExRegisterCallback нужно вызвать ExCreateCallBack и открыть существующий объект по имени?
Записан
SlavaI
Главный специалист

ru
Offline Offline

« Ответ #4 : 24-01-2006 08:06 » 

задокументировано в DDK
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines