2010-06-10 16 views

回答

1

從SDK文檔:

一個32位值,其比特對應於訪問該對象的權限。位可以設置爲開或關,但設置的含義取決於ACE類型。例如,如果打開權限讀取權限的位並且ACE類型爲拒絕,則ACE拒絕讀取對象權限的權限。如果設置了相同的位但ACE類型爲允許,則ACE授予讀取對象權限的權限。

從WINNT.H SDK頭文件:

//  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 
//  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 
//  +---------------+---------------+-------------------------------+ 
//  |G|G|G|G|Res'd|A| StandardRights|   SpecificRights  | 
//  |R|W|E|A|  |S|    |        | 
//  +-+-------------+---------------+-------------------------------+ 
// 
//  typedef struct _ACCESS_MASK { 
//   WORD SpecificRights; 
//   BYTE StandardRights; 
//   BYTE AccessSystemAcl : 1; 
//   BYTE Reserved : 3; 
//   BYTE GenericAll : 1; 
//   BYTE GenericExecute : 1; 
//   BYTE GenericWrite : 1; 
//   BYTE GenericRead : 1; 
//  } ACCESS_MASK; 
//  typedef ACCESS_MASK *PACCESS_MASK; 
// 
// but to make life simple for programmer's we'll allow them to specify 
// a desired access mask by simply OR'ing together mulitple single rights 
// and treat an access mask as a DWORD. For example 
// 
//  DesiredAccess = DELETE | READ_CONTROL