| 76 | } |
| 77 | |
| 78 | IntegrityLevel Token::GetIntegrityLevel() const { |
| 79 | BYTE buffer[TOKEN_INTEGRITY_LEVEL_MAX_SIZE]; |
| 80 | DWORD len; |
| 81 | if (!::GetTokenInformation(_handle.get(), TokenIntegrityLevel, buffer, sizeof(buffer), &len)) |
| 82 | return IntegrityLevel::Error; |
| 83 | |
| 84 | auto p = (TOKEN_MANDATORY_LABEL*)buffer; |
| 85 | return (IntegrityLevel)*GetSidSubAuthority(p->Label.Sid, *GetSidSubAuthorityCount(p->Label.Sid)-1); |
| 86 | } |
| 87 | |
| 88 | DWORD Token::GetSessionId() const { |
| 89 | DWORD id = 0, len; |