发现文章标题:(FINISHED)(COPIED)创建一个私有命名空间[定稿] (FINISHED)(COPIED)创建一个私有命名空间[定稿].doc-免费下载

公文高手,超级方便的公文写作神器! 立即了解


(FINISHED)(COPIED)创建一个私有命名空间[定稿]

第一篇:(finished)(copied)创建一个私有命名空间[定稿]以下列出创建一个私有命名空间的步骤以及函数知识点

源码:

intwinapiwinmain(…){

//创建一个边界描述符

charszboundarytext[]=“boundary”;

handlehboundary=createboundarydescriptor(szboundarytext,0);

//创建一个sid

bytelocaladminsid[security_max_sid_size];

psidplocaladminsid=&localadminsid;

dwordcbsid=sizeof(localadminsid);

createwellknownsid(winbuiltinadministratorssid,null,plocaladminsid,&cbsid);

//将sid和边界描述符关联起来

addsidtoboundarydescriptor(&hboundary,plocaladminsid);

//初始化安全描述符

security_attributessa;

sa.binherithandle=false;

sa.nlength=sizeof(sa);

convertstringsecuritydescriptortosecuritydescriptor(text(“d(a;;ga;;;ba)”),sddl_revision_1,&sa.lpsecuritydescriptor,null);

//创建私人命名空间,第三个参数就是以后用的前缀

handlehnamespace=createprivatenamespace(&sa.hboundary,szboundarytext);

//释放安全描述符

localfree(sa.lpsecuritydescriptor);

//尝试在私人命名空间中创建一个mutexobject,并检测是否为首例程

handlehmutex=createmutex(null,false,text(“boundary\mutex”));

if(getlasterror==error_already_exists)printf(“anotherinstanceisrunning\n”);

elseprintf(“firstinstance”);}

下面介绍函数

createboundarydescriptorhandlewinapicreateboundarydescriptor(

_in_lpctstrname,

_in_ulongflags);parametersname[in]

边界描述符的名字flags[in]

保留,设为nullreturnvalue

如果函数成功了,返回值就是一个到边界描述符的句柄

如果函数失败了,那么返回值就是null。可以调用getlasterror来获得更多的错误信息.remarks

一个新的边界描述符必须有至少一个的sid。

createwellknownsidboolwinapicreatewellknownsid(

_in_

well_known_sid_typewellknownsidtype,

_in_opt_

psiddomainsid,

_out_opt_psidpsid,

_inout_

dword*cbsid);parameterswellknownsidtype[in]


(未完,全文共4737字,当前显示1447字)

(请认真阅读下面的提示信息)


温馨提示

此文章为6点公文网原创,稍加修改便可使用。只有正式会员才能完整阅读,请理解!

会员不仅可以阅读完整文章,而且可以下载WORD版文件

已经注册:立即登录>>

尚未注册:立即注册>>

6点公文网 ,让我们一起6点下班!