![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HeapAlloc и PSECURITY_DESCRIPTOR
learner © (2006-07-18 18:15:00)Поясните, пожалуйста, почему во многих примерах по созданию
PSECURITY_DESCRIPTOR, для резервирования памяти используют HeapAlloc,
а не, например, GetMem или др. функцию ?
Игорь Шевченко (2006-07-19 11:02:00) [1]
> Т.е. все-таки, желательно использовать LocalAlloc ?
Без разницы. Можно использовать все что угодно, в том числе статический массив
var SDBody: array[0..1023] of Char;
если в килобайт влезет заголовок SD + все ACL
Ketmar (2006-07-18 20:47:00) [2]в принципе -- без разницы. а на практике -- HeapAlloc() МОЖЕТ вернуть указатель, не выравненый по границе. что вызовет сбои в других функциях. я два дня искал баг в верном коде (там не было HeapAlloc, правда %-). оказалось -- всего лишь не поравнял структуру для VirtualProtect().
Eraser (2006-07-18 18:51:00) [3]AFAIK - без разницы.
learner (2006-07-18 18:45:00) [4]Спасибо.
Т.е. все-таки, желательно использовать LocalAlloc ?
Eraser (2006-07-18 18:32:00) [5]вдогонку:
цитата из msdn
Several functions that use the SECURITY_DESCRIPTOR structure require that this structure be on a valid pointer boundary in memory. These boundaries vary depending on the type of processor used. Memory allocation functions, such as malloc and LocalAlloc, return properly aligned pointers.
Eraser (2006-07-18 18:31:00) [6]> [0] learner © (18.07.06 18:15)
потому что большенство примеров, использующих PSECURITY_DESCRIPTOR, написано на MSVC++, в котором нету никаких GetMem.