checkTokenMembership wraps advapi32!CheckTokenMembership. We bind it directly because x/sys/windows doesn't export it.
(token windows.Token, sid *windows.SID)
| 17 | // checkTokenMembership wraps advapi32!CheckTokenMembership. We bind it |
| 18 | // directly because x/sys/windows doesn't export it. |
| 19 | func checkTokenMembership(token windows.Token, sid *windows.SID) (bool, error) { |
| 20 | var isMember int32 |
| 21 | r1, _, e1 := procCheckTokenMembership.Call( |
| 22 | uintptr(token), |
| 23 | uintptr(unsafe.Pointer(sid)), |
| 24 | uintptr(unsafe.Pointer(&isMember)), |
| 25 | ) |
| 26 | if r1 == 0 { |
| 27 | return false, e1 |
| 28 | } |
| 29 | return isMember != 0, nil |
| 30 | } |
| 31 | |
| 32 | // ErrNotElevated is returned by IsElevated when the current process token |
| 33 | // does not have the Administrators group enabled. The caller should |