/
common.go
82 lines (71 loc) · 2 KB
/
common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package eventlogging
import (
"fmt"
)
// SID represents the Windows Security Identifier for an account.
type SID struct {
Identifier string
Name string
Domain string
Type SIDType
}
// String returns string representation of SID.
func (a SID) String() string {
return fmt.Sprintf("SID Identifier[%s] Name[%s] Domain[%s] Type[%s]",
a.Identifier, a.Name, a.Domain, a.Type)
}
// SIDType identifies the type of a security identifier (SID).
type SIDType uint32
// SIDType values.
const (
// Do not reorder.
SidTypeUser SIDType = 1 + iota
SidTypeGroup
SidTypeDomain
SidTypeAlias
SidTypeWellKnownGroup
SidTypeDeletedAccount
SidTypeInvalid
SidTypeUnknown
SidTypeComputer
SidTypeLabel
)
// Mapping of SID types to their string representations.
var sidTypeToString = map[SIDType]string{
SidTypeUser: "User",
SidTypeGroup: "Group",
SidTypeDomain: "Domain",
SidTypeAlias: "Alias",
SidTypeWellKnownGroup: "Well Known Group",
SidTypeDeletedAccount: "Deleted Account",
SidTypeInvalid: "Invalid",
SidTypeUnknown: "Unknown",
SidTypeComputer: "Computer",
SidTypeLabel: "Label",
}
// String returns string representation of SIDType.
func (st SIDType) String() string {
return sidTypeToString[st]
}
// MessageFiles contains handles to event message files associated with an
// event log source.
type MessageFiles struct {
SourceName string
Err error
Handles []FileHandle
}
// FileHandle contains the handle to a single Windows message file.
type FileHandle struct {
File string // Fully-qualified path to the event message file.
Handle uintptr // Handle to the loaded event message file.
Err error // Error that occurred while loading Handle.
}
// InsufficientBufferError indicates the buffer passed to a system call is too
// small.
type InsufficientBufferError struct {
Cause error
RequiredSize int // Size of the buffer that is required.
}
func (e InsufficientBufferError) Error() string {
return e.Cause.Error()
}