Нужно иметь права чтобы делать энумерацию папок и файлов на всех разделах, а так читать файлы и инфу о них
оказалось что по умолчанию лазить де попало не разрешено, поэтому нашел код который запрашивает SE_BACKUP_NAME
HANDLE hAccessToken = NULL;
LUID luidPrivilege;
DWORD dwErrorCode;
if (!OpenProcessToken (GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hAccessToken))
return;
if (LookupPrivilegeValue (NULL, SE_BACKUP_NAME, &luidPrivilege)) {
TOKEN_PRIVILEGES tpPrivileges;
tpPrivileges.PrivilegeCount = 1;
tpPrivileges.Privileges[0].Luid = luidPrivilege;
tpPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hAccessToken, FALSE, &tpPrivileges,
0, NULL, NULL);
if ((dwErrorCode = GetLastError ()) != ERROR_SUCCESS)
return;
}
else
return;
а нужно ли SE_BACKUP_NAME, не слишком ли это много, может чтото поменьше хватит?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.