проблема следующая. не работает банальный код, аналогичный msdn'овскому: счастье оканчивается на последнем вызове. получаю GetLastError = ERROR_INVALID_DATATYPE (1804). бьюсь уже несколько часов и ничего не могу понять, т.к. код прост до безобразия, поиск по мсдн/гуглу/форуму - тоже ничего. кто сталкивался или может примерно указать направление куда копать?? спасибо.
нет, память под нее он выделяет сам.. от отчаяния и это пробовал, но исход тот же =/ еще варианты?? вот сейчас проверил - тот же самый код под vista sp1 работает, т.е. видно какой-то из аттрибутов не поддерживался в winxp. сейчас буду пробовать. все-таки если кто-то конкретно сталкивался и знает, отпишите - буду благодарен.
Код (Text): #define SL "S:(ML;;NW;;;LW)" PSECURITY_DESCRIPTOR pSD = NULL; BOOL bStatus = FALSE; HANDLE hMutex = NULL; BOOL bStatus = ConvertStringSecurityDescriptorToSecurityDescriptor (SL, SDDL_REVISION_1, &pSD, NULL);
проблема решена: #define SL "SML;;NW;;;LW)" - какой-то из этих аттрибутов не поддерживается в WinXP. всем спс n0name - тебе отдельное, за то что выслал мой же код, помогло ,D
deLight не твой же. поменял порядок переменных. Многие апи чувствительны к выравниванию адресов переменных.