#defin #defin #defin

正文

LUID就是指locally unique identifier,我想GUID大家是比較熟悉的,和GUID的要求保證全局唯一不同,LUID只要保證局部唯一,就是指在系統(tǒng)的每一次運行期間保證是唯一的就可以了。另外和GUID相同的一點,LUID也是一個64位的值,相信大家都看過GUID那一大串的值,我們要怎么樣才能知道一個權限對應的LUID值是多少呢?這就要用到另外一個API函數(shù)LookupPrivilegeValue,其原形如下:

BOOL LookupPrivilegevalue(

LPCTSTR lpSystemName, // system name

LPCTSTR lpName, // privilege name

PLUID lpLuid // locally unique identifier

);

第一個參數(shù)是系統(tǒng)的名稱,如果是本地系統(tǒng)只要指明為NULL就可以了,第三個參數(shù)就是返回LUID的指針,第二個參數(shù)就是指明了權限的名稱,如“SeDebugPrivilege”。在Winnt.h中還定義了一些權限名稱的宏,如:

#define SE_BACKUP_NAME TEXT("SeBackupPrivilege")

#define SE_RESTORE_NAME TEXT("SeRestorePrivilege")

#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege")

#define SE_DEBUG_NAME TEXT("SeDebugPrivilege")