summaryrefslogtreecommitdiff
path: root/packages/w32/advapi32_typedef.go
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2019-08-16 12:55:10 +0200
committerKali Kaneko (leap communications) <kali@leap.se>2019-08-16 15:50:28 +0200
commitec4974e7660776e8ab2883b109bfa3f96b4f5317 (patch)
tree6c6ae93cab7e3a0ff6ebb7ec07e3ef8757e5272f /packages/w32/advapi32_typedef.go
parentf4ab1b0463e902f23224c37f1e217241084681df (diff)
[pkg] need to vendorize allendang w32 lib
we use go mod edit -replace
Diffstat (limited to 'packages/w32/advapi32_typedef.go')
-rw-r--r--packages/w32/advapi32_typedef.go122
1 files changed, 122 insertions, 0 deletions
diff --git a/packages/w32/advapi32_typedef.go b/packages/w32/advapi32_typedef.go
new file mode 100644
index 0000000..3a4308c
--- /dev/null
+++ b/packages/w32/advapi32_typedef.go
@@ -0,0 +1,122 @@
+package w32
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa374931(v=vs.85).aspx
+type ACL struct {
+ AclRevision byte
+ Sbz1 byte
+ AclSize uint16
+ AceCount uint16
+ Sbz2 uint16
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa379561(v=vs.85).aspx
+
+type SECURITY_DESCRIPTOR_CONTROL uint16
+
+type SECURITY_DESCRIPTOR struct {
+ Revision byte
+ Sbz1 byte
+ Control SECURITY_DESCRIPTOR_CONTROL
+ Owner uintptr
+ Group uintptr
+ Sacl *ACL
+ Dacl *ACL
+}
+
+type SID_IDENTIFIER_AUTHORITY struct {
+ Value [6]byte
+}
+
+// typedef struct _SID // 4 elements, 0xC bytes (sizeof)
+// {
+// /*0x000*/ UINT8 Revision;
+// /*0x001*/ UINT8 SubAuthorityCount;
+// /*0x002*/ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; // 1 elements, 0x6 bytes (sizeof)
+// /*0x008*/ ULONG32 SubAuthority[1];
+// }SID, *PSID;
+type SID struct {
+ Revision byte
+ SubAuthorityCount byte
+ IdentifierAuthority SID_IDENTIFIER_AUTHORITY
+ SubAuthority uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa363646.aspx
+type EVENTLOGRECORD struct {
+ Length uint32
+ Reserved uint32
+ RecordNumber uint32
+ TimeGenerated uint32
+ TimeWritten uint32
+ EventID uint32
+ EventType uint16
+ NumStrings uint16
+ EventCategory uint16
+ ReservedFlags uint16
+ ClosingRecordNumber uint32
+ StringOffset uint32
+ UserSidLength uint32
+ UserSidOffset uint32
+ DataLength uint32
+ DataOffset uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/ms685996.aspx
+type SERVICE_STATUS struct {
+ DwServiceType uint32
+ DwCurrentState uint32
+ DwControlsAccepted uint32
+ DwWin32ExitCode uint32
+ DwServiceSpecificExitCode uint32
+ DwCheckPoint uint32
+ DwWaitHint uint32
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa364160(v=vs.85).aspx
+type WNODE_HEADER struct {
+ BufferSize uint32
+ ProviderId uint32
+ HistoricalContext uint64
+ KernelHandle HANDLE
+ Guid GUID
+ ClientContext uint32
+ Flags uint32
+}
+
+// These partially compensate for the anonymous unions we removed, but there
+// are no setters.
+func (w WNODE_HEADER) TimeStamp() uint64 {
+ // TODO: Cast to the stupid LARGE_INTEGER struct which is, itself, nasty
+ // and union-y
+ return uint64(w.KernelHandle)
+}
+
+func (w WNODE_HEADER) Version() uint32 {
+ return uint32(w.HistoricalContext >> 32)
+}
+
+func (w WNODE_HEADER) Linkage() uint32 {
+ return uint32(w.HistoricalContext)
+}
+
+// http://msdn.microsoft.com/en-us/library/windows/desktop/aa363784(v=vs.85).aspx
+type EVENT_TRACE_PROPERTIES struct {
+ Wnode WNODE_HEADER
+ BufferSize uint32
+ MinimumBuffers uint32
+ MaximumBuffers uint32
+ MaximumFileSize uint32
+ LogFileMode uint32
+ FlushTimer uint32
+ EnableFlags uint32
+ AgeLimit int32
+ NumberOfBuffers uint32
+ FreeBuffers uint32
+ EventsLost uint32
+ BuffersWritten uint32
+ LogBuffersLost uint32
+ RealTimeBuffersLost uint32
+ LoggerThreadId HANDLE
+ LogFileNameOffset uint32
+ LoggerNameOffset uint32
+}