Главная страница
    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.01 c
14-25560
Kein
2003-12-19 20:45
2004.01.09
Access


3-25198
My
2003-12-11 17:51
2004.01.09
Вставка множества записей


1-25336
vidiv
2003-12-20 09:59
2004.01.09
RTF2HTML


4-25662
Dark Elf
2003-11-05 11:35
2004.01.09
Использование методов из ехе-файла


3-25206
Morfey
2003-12-11 20:02
2004.01.09
MySQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский