Открыть объект "событие" из корневой директории

Тема в разделе "WASM.WIN32", создана пользователем ormoulu, 22 июн 2011.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Можно ли при помощи NtOpenEvent (юзер-мод) открыть эвент из корневой директории? Конкретно, нужен хендл UniqueSessionIdEvent.
    Возвращается STATUS_OBJECT_NAME_NOT_FOUND, возможно, я что-то делаю не так.

    Код (Text):
    1.     USHORT EventName[] = L"\\UniqueSessionIdEvent";
    2.     UNICODE_STRING us;
    3.     us.Buffer = EventName;
    4.     us.Length = sizeof(EventName);
    5.     us.MaximumLength = sizeof(EventName);
    6.     OBJECT_ATTRIBUTES oa = {0};
    7.     oa.Length = 0x18;
    8.     oa.ObjectName = &us;
    9.     oa.Attributes = 0x00000040;
    10.    
    11.     HANDLE hEvent = NULL;
    12.     NtOpenEvent (&hEvent, 1, &oa);
     
  2. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Думаю, проблема в том, что sizeof считает с нулем, а имя события без нуля.
     
  3. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Точно! Спасибо.
     
  4. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Код (Text):
    1. us.Length = wcslen(us.Buffer)*sizeof(WCHAR);
    2. us.MaximumLength = us.Length + sizeof(WCHAR);
     
  5. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    UNICODE_STRING us = RTL_CONSTANT_STRING(L"your string");