Winapi: дескриптор безопасности с размером SECURITY_DESCRIPTOR_MIN_LENGTH имеет ACL

Я новичок в Winapi, и я столкнулся с этим кодом:

PSECURITY_DESCRIPTOR SD = NULL;

Int length = SECURITY_DESCRIPTOR_MIN_LENGTH;

SD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, length);

if (SD == NULL)
{
  printf("Error! SD is null.\n");
}

if (InitializeSecurityDescriptor(SD, 
                                   SECURITY_DESCRIPTOR_REVISION) == FALSE)
{
  printf("Error in InitializeSecurityDescriptor.\n");
}

if (SetSecurityDescriptorDacl(SD, TRUE, acl, FALSE) == FALSE)
{
  printf("Error in SetSecurityDescriptorDacl.\n");
}

MSDN сайт показывает мне, что The minimum length of a security descriptor is SECURITY_DESCRIPTOR_MIN_LENGTH. A security descriptor of this length has no associated security identifiers (SIDs) or access control lists (ACLs). Но пока я тестировал этот код, он работал нормально. Я провел небольшое исследование и нашел пример MSDN о дескрипторах безопасности, и там также используется подобный код. Я думаю, что я что-то неправильно понял, не должен использовать SECURITY_DESCRIPTOR_MIN_LENGTH а затем добавление ACL вызывает ошибку? Извините, если вопрос звучит глупо.

0 ответов

Другие вопросы по тегам