Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-25570
Kerk
2003-12-18 11:14
2004.01.09
Помогите please с курсовым...


1-25432
AlexNx
2003-12-23 13:11
2004.01.09
Где взять русские XXConsts.pas для Delphi 7.0


4-25636
Fox Mulder
2003-11-07 06:31
2004.01.09
Скины


3-25231
ToleaN
2003-12-11 10:51
2004.01.09
как вызвать диалог выбора DSN


6-25481
Novenkij
2003-11-07 11:49
2004.01.09
Скорость соединения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский