Это может быть глупый вопрос, но пытались ли вы выполнить то же действие вручную (например, с помощью Проводника)? В Vista есть несколько каталогов, которые даже пользователи в группе «Администраторы» не могут изменить, не предпринимая дополнительных действий. Я думаю, что для начала нужно сделать два шага.
Сначала используйте Explorer, чтобы внести те же изменения, которые вы пытаетесь внести в свой код. Если это не помогло, устраните неисправность.
Во-вторых, проверьте свой код в каталоге, который вы создали в своей собственной папке пользователя. Вам не нужно иметь права администратора, чтобы сделать это; вошедшая в систему учетная запись должна иметь возможность изменять ACL для папок, например, под. C: \ Users \ вашеимя \ документы
.
Я бы также прошел по коду в отладчике и посмотрел на объект "ds" непосредственно перед вашим вызовом SetAccessControl. Это может показать вам нечто неожиданное, чтобы направить вас по правильному пути.