Difference between revisions of "MemoryRecord.Assign"

From SunFlurry wiki
Jump to: navigation, search
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08: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;