Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание/открытие проекции в службе 
:(
    Опции темы
freezeman
Дата 8.5.2012, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



Всем привет!

Подскажите, пожалуйста, почему в службе я создаю проекцию, но не могу открыть её в другом приложении???
Хотя если таким же образом создаю проекцию в другом приложении и открываю - работает!! ( То есть, не работает только при схеме взаимодействия СЛУЖБА->ПРИЛОЖЕНИЕ)

Код создания проекции в службе:
Код

// Настройка дескриптора защиты в службе
    PSECURITY_DESCRIPTOR pSD; 
    SECURITY_ATTRIBUTES sa; 

    // Выделяем из кучи указанное число байт
    pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH); 

    if (pSD == NULL)
    {
            return 1;
    }

    // Инициализируем дескриптор защиты
    if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION))
    {
        return 1;
    }

    // Устанавливаем дескриптор защиты
    if (!SetSecurityDescriptorDacl(pSD, TRUE, (PACL) NULL, FALSE))
    {
        return 1;
    }

    sa.nLength = sizeof(sa); 
    sa.lpSecurityDescriptor = pSD;
    sa.bInheritHandle = TRUE;

    HANDLE hMapFile;
    ReadFileParam *pBuf; // структура...
    HANDLE hEvent = ::CreateEvent (NULL, true, false, TEXT("MyEvent\0"));

    if (hEvent == NULL)
    {
        return 1;
    }

    hMapFile = CreateFileMapping(
        INVALID_HANDLE_VALUE,  
        NULL,                   
        PAGE_READWRITE,        
        0,                      
        BUF_SIZE,             
        szName                    
        );                

    if (hMapFile == NULL)
    {
        return 1;
    }

    pBuf = (struct ReadFileParam *) MapViewOfFile(
        hMapFile,
        FILE_MAP_ALL_ACCESS, 
        0,
        0,
        BUF_SIZE
        );

    if (pBuf == NULL)
    {
        CloseHandle(hMapFile);
        return 1;
    }


Код открытия проекции:
Код

HANDLE hMapFile;

hMapFile = OpenFileMapping(
    FILE_MAP_ALL_ACCESS,   // read/write access
    FALSE,                 // do not inherit the name
    szName);               // name of mapping object

PM MAIL   Вверх
freezeman
Дата 8.5.2012, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 175
Регистрация: 21.1.2011

Репутация: нет
Всего: нет



При создании проекции забыл передать SECURITY_ATTRIBUTES....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.