C> но у меня почему-то как раз не заполняются поля PACL Sacl и PACL Dacl (
Дело в том, что SECURITY_DESCRIPTOR — структура переменной длины в силу того, что её поля — это также структуры переменной длины (например, DACL, SID и другие). Для извлечения полей из этой структуры существуют специальные функции — GetSecurityDescriptorDacl(), GetSecurityDescriptorSacl() и т.п. Кроме того, я не очень понимаю, зачем тебе именно ZwQuerySecurityObject() — это достаточно низкоуровневая функция и, вообще говоря, не предназначена для вызова в Win32-приложениях. Думаю, тебе стоит заменить её на GetSecurityInfo() либо GetNamedSecurityInfo().
Рабочий пример я уже постил вот
здесьАвтор: x64
Дата: 01.10.08
. Кстати, именно для тебя. Почему опять тебе же самые вопросы?