Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизПомогите please с курсовым... Найти похожие ветки
← →
Kerk (2003-12-18 11:14) [0]Может кто-нибудь сказать, что здесь не так?
...
const
DeviceName: PWideChar = "\Device\PhysicalMemory";
...
var
PhysMem: THandle;
...
var
PhysMemString: TUnicodeString;
attributes: TObjectAttributes;
OldAcl,NewAcl: PACL;
SD: PSECURITY_DESCRIPTOR;
Access: EXPLICIT_ACCESS;
begin
RtlInitUnicodeString(@PhysMemString,DeviceName);
with attributes do
begin
Length := SizeOf(TObjectAttributes);
RootDirectory := 0;
Attributes := OBJ_CASE_INSENSITIVE or OBJ_KERNEL_HANDLE;
ObjectName := @PhysMemString;
SecurityDescriptor := nil;
SecurityQualityOfService := nil;;
end;
Result := NtOpenSection(@PhysMem,READ_CONTROL or WRITE_DAC or SECTION_MAP_READ,
@attributes) <> INVALID_HANDLE_VALUE;
if not Result then Exit;
__DeviceFlags := PD_DEVICEFLAG_READONLY;
if GetSecurityInfo(PhysMem,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,
nil,nil,@OldAcl,nil,SD) = ERROR_SUCCESS then
begin
Access.grfAccessPermissions := SECTION_MAP_WRITE;
Access.grfAccessMode := GRANT_ACCESS;
Access.grfInheritance := NO_INHERITANCE;
Access.Trustee.pMultipleTrustee := nil;
Access.Trustee.MultipleTrusteeOperation := NO_MULTIPLE_TRUSTEE;
Access.Trustee.TrusteeForm := TRUSTEE_IS_NAME;
Access.Trustee.TrusteeType := TRUSTEE_IS_USER;
Access.Trustee.ptstrName := "CURRENT_USER";
if SetEntriesInAcl(1,@Access,OldAcl,NewAcl) = ERROR_SUCCESS then
begin
if SetSecurityInfo(PhysMem,SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,
nil,nil,@NewAcl,nil) = ERROR_SUCCESS then // вот здесь возвращаемое значение ERROR_INVALID_PARAMETER :(
begin
CloseHandle(PhysMem);
Result := NtOpenSection(@PhysMem,SECTION_MAP_WRITE,@attributes) <> INVALID_HANDLE_VALUE;
__DeviceFlags := 0;
end;
LocalFree(DWORD(NewAcl));
end;
LocalFree(DWORD(SD));
end;
if not Result then Exit;
...
На всякий случай:
Код выполняется в DLL с правами админа. Windows XP Pro SP1
← →
McSimm (2003-12-18 11:29) [1]
> Может кто-нибудь сказать, что здесь не так?
По коду не скажу - не знаю. Но вопрос надо задавать иначе.
Не понятно ни в чем проблема ни о чем речь.
Тема сообщения обязательна должна отражать суть вопроса. Иначе модераторы будут удалять ветки.
← →
Kerk (2003-12-18 11:33) [2]McSimm © (18.12.03 11:29) [1]
> По коду не скажу - не знаю. Но вопрос надо задавать иначе.
> Не понятно ни в чем проблема ни о чем речь.
> Тема сообщения обязательна должна отражать суть вопроса. Иначе > модераторы будут удалять ветки.
Прошу меня извинить...
Уточню:
функция отмеченная комментарием возвращает ERROR_INVALID_PARAMETER, хотя должна возвращать ERROR_SUCCESS
Вопрос непосредственно касается WinAPI:
какой параметр неверен?
← →
MBo (2003-12-18 11:54) [3]SetSecurityInfo(... @NewAcl,nil)
надо ли?
← →
Kerk (2003-12-18 12:04) [4]MBo © (18.12.03 11:54) [3]
Благодарю!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c