|
|
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
Привет всем, при копировании прав в окнах через GetFileSecurity нужно выделить достаточный объём памяти под структуру дескриптора безопасности копируемого файла/папки. Дабы потом через GetMem или HeapAlloc её выделить и передать в GetFileSecurity. В Delphi есть такая константа SECURITY_DESCRIPTOR_MIN_LENGTH, но она задаёт минимальный размер и годится только для сброса настроек безопасности. Есть так же GetSecurityDescriptorLength но она работает с уже заполненной структурой и толка от неё мало. Посоветуйте как определить необходимый объём памяти в этом случае? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:21 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
hlopotunПосоветуйте как определить необходимый объём памяти в этом случае? Дам шикарный совет. Только без обид. Документация обычно содержит необходимые ответы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:24 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
последний параметр GetFileSecurity возвращает сколько ему нужно. если нужно больше чем ты задал, то дескриптор в буфер не передаётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:26 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, GetLastError вываливает ошибку 122 (не хватает выделенного места) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. как то это не совсем понятно, ошибка и есть и нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:42 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
да, понятно что psd: PSECURITY_DESCRIPTOR; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:43 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
hlopotun, Если он вернул TRUE - значит отработал, GetLastError в этом случае может вообще не устанавливаться, и 122я ошибка остаётся от предыдущего вызова, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 17:53 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
alekcvphlopotun, Если он вернул TRUE - значит отработал, GetLastError в этом случае может вообще не устанавливаться, и 122я ошибка остаётся от предыдущего вызова, например. по доке GetLastError вроде сбрасывает последнее состояние ошибки. И он там явно вызывается. Что то тут не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 18:00 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
hlopotunпо доке GetLastError вроде сбрасывает последнее состояние ошибки. а мужики то не знают!! можно ссылочку на доку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 18:09 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
var SD: PSECURITY_DESCRIPTOR; Len: Cardinal; begin GetFileSecurity(PChar('12345.txt'), DACL_SECURITY_INFORMATION, nil, 0, Len); SD := HeapAlloc(GetProcessHeap, 8, Len); GetFileSecurity(PChar('12345.txt'), DACL_SECURITY_INFORMATION, SD, Len, Len); Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 18:12 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
Tactical Nuclear Penguinhlopotunпо доке GetLastError вроде сбрасывает последнее состояние ошибки. а мужики то не знают!! можно ссылочку на доку? тут вроде. Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 18:40 |
|
||
|
Выделение необходимой памяти под дескриптор безопасности в 32/64 окнах
|
|||
|---|---|---|---|
|
#18+
hlopotun, 1. Документацию на API-функции лучше смотреть тут . 2. Там, кстати, прямо написано: MSDNHowever, some functions also set the last-error code when they succeed.;Т.е. далеко не все функции сбрасывают код ошибки при успешном завершении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2018, 18:45 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39651265&tid=2040842]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
202ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 573ms |

| 0 / 0 |
