Difference between revisions of "MemoryRecord.Assign"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
Assign (Работа с записями) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция отвязывает запись от текущей привязки, и привязывает ее к заданному в аргументе буферу. В отличии от Allocate, содержимое буфера не заполняется нулями. См. также AssignToSystemMemory.
Синтаксис
MemoryRecord.Assign(<Буфер для привязки (BUFFER)>,<Индекс в буфере (INT)>)
Аргументы
<Буфер для привязки (BUFFER)>
- Аргумент задает новый буфер для привязки.<Индекс в буфере (INT)>
- (необязательный аргумент) Задает индекс в буфере, к которому будет осуществлена привязка созданной записи. По умолчанию привязка создается к началу буфера. Адресация буфера начинается с нуля.
Примеры
//Системные записи, связанные с разрешениями SE_PRIVILEGE_ENABLED:=2; rLUID_AND_ATTRIBUTES:=MemoryRecord.Create("Luid:I64,Attributes:UI32"); rTOKEN_PRIVILEGES1:=MemoryRecord.Create("PrivilegeCount:UI32,Privileges:A1:@rLUID_AND_ATTRIBUTES"); aBuf:=Buffer.Create(rTOKEN_PRIVILEGES1.Size()); rTOKEN_PRIVILEGES1.Assign(aBuf); rTOKEN_PRIVILEGES1.PrivilegeCount:=1; rTOKEN_PRIVILEGES1.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED; rTOKEN_PRIVILEGES1.Privileges[0].Luid:=Luid;