Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Глюки при работы службы


Автор: NiJazz 10.11.2004, 01:35
Вот участок кода:

Код

............
PACL pAcl = NULL;
............
GetNamedSecurityInfo(lpFileName,
  SE_FILE_OBJECT,
  DACL_SECURITY_INFORMATION,
  NULL, NULL, &pAcl, NULL, NULL);

dwAclSize = pAcl->AclSize; * // Вот здесь работа прекращается. Почему???
wsprintf(lpMsg, "Old ACL size: %d", dwAclSize);
Log(lpMsg);
dwAclSize += (sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD)) * dwAceCount;
dwAclSize += (WORD)GetLengthSid(pSid);
pAcl->AclSize = dwAclSize;
wsprintf(lpMsg, "New ACL size: %d", dwAclSize);
Log(lpMsg);
............

Всё прекрасно работает, если написать обычное консольное приложение и создать отдельный поток. Но если этот код выполняется при работе службы с тем же назначением, с тем же основным потоком, то на месте * работа почему-то завершается и в логах записи "Old ACL size: %d" уже нет.
Что делать???

Автор: shedon 10.11.2004, 08:11
А что возвращает GetNamedSecurityInfo ?
И какое значение принимает pAcl, после вызова этой функции ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)