VC源代码如下,pNewAcl 用 & 取地址PACL pAcl = NULL;
PACL pNewAcl = NULL;
EXPLICIT_ACCESS ea;
BuildExplicitAccessWithName(&ea, szName, dwAccess, GRANT_ACCESS, 0);
ea.Trustee.TrusteeType = TRUSTEE_IS_USER;if(ERROR_SUCCESS != SetEntriesInAcl(1, &ea, pAcl, &pNewAcl))
{
printf("ModifySecurity SetEntriesInAcl Failed");
pNewAcl = NULL;
__leave;
}[code]
但是为什么在delphi里,pNewAcl 加 @ 就错了呢?不加 @ 编译能通过,但是SetEntriesInAcl返回错误代码1332.
恳请高手解惑~
[code=Delphi(Pascal)]
if(ERROR_SUCCESS <> SetEntriesInAcl(1, @ea, pOAcl, @pNewAcl)) then
begin
showmessage('ModifySecurity: '+inttostr(GetLastError));
showmessage('ModifySecurity SetEntriesInAcl Failed');
pNewAcl := nil;
goto CleanUP;
end;
PACL pNewAcl = NULL;
EXPLICIT_ACCESS ea;
BuildExplicitAccessWithName(&ea, szName, dwAccess, GRANT_ACCESS, 0);
ea.Trustee.TrusteeType = TRUSTEE_IS_USER;if(ERROR_SUCCESS != SetEntriesInAcl(1, &ea, pAcl, &pNewAcl))
{
printf("ModifySecurity SetEntriesInAcl Failed");
pNewAcl = NULL;
__leave;
}[code]
但是为什么在delphi里,pNewAcl 加 @ 就错了呢?不加 @ 编译能通过,但是SetEntriesInAcl返回错误代码1332.
恳请高手解惑~
[code=Delphi(Pascal)]
if(ERROR_SUCCESS <> SetEntriesInAcl(1, @ea, pOAcl, @pNewAcl)) then
begin
showmessage('ModifySecurity: '+inttostr(GetLastError));
showmessage('ModifySecurity SetEntriesInAcl Failed');
pNewAcl := nil;
goto CleanUP;
end;
顺便问一下 CreateFile 函数创建文件夹,该怎么设置参数?
http://baike.baidu.com/view/1288759.htm
另外这个代码是我从网上找的一个无驱动进Ring0的代码
http://kmdkit4d.net/dispbbs.do?boardId=8&ID=16&star=2