You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.7 KiB
Go
132 lines
3.7 KiB
Go
package win32api
|
|
|
|
import "syscall"
|
|
|
|
type Ulong int32
|
|
type Ulong_ptr uintptr
|
|
|
|
const (
|
|
LOCKFILE_EXCLUSIVE_LOCK DWORD = 0x00000002
|
|
LOCKFILE_FAIL_IMMEDIATELY DWORD = 0x00000001
|
|
)
|
|
|
|
type PROCESSENTRY32 struct {
|
|
DwSize Ulong
|
|
CntUsage Ulong
|
|
Th32ProcessID Ulong
|
|
Th32DefaultHeapID Ulong_ptr
|
|
Th32ModuleID Ulong
|
|
CntThreads Ulong
|
|
Th32ParentProcessID Ulong
|
|
PcPriClassBase Ulong
|
|
DwFlags Ulong
|
|
SzExeFile [260]byte
|
|
}
|
|
|
|
type MEMORYSTATUSEX struct {
|
|
DwLength DWORD
|
|
DwMemoryLoad DWORD
|
|
UllTotalPhys DWORDLONG
|
|
UllAvailPhys DWORDLONG
|
|
UllTotalPageFile DWORDLONG
|
|
UllAvailPageFile DWORDLONG
|
|
UllTotalVirtual DWORDLONG
|
|
UllAvailVirtual DWORDLONG
|
|
UllAvailExtendedVirtual DWORDLONG
|
|
}
|
|
|
|
type USN_JOURNAL_DATA struct {
|
|
UsnJournalID DWORDLONG
|
|
FirstUsn USN
|
|
NextUsn USN
|
|
LowestValidUsn USN
|
|
MaxUsn USN
|
|
MaximumSize DWORDLONG
|
|
AllocationDelta DWORDLONG
|
|
}
|
|
|
|
type READ_USN_JOURNAL_DATA struct {
|
|
StartUsn USN
|
|
ReasonMask DWORD
|
|
ReturnOnlyOnClose DWORD
|
|
Timeout DWORDLONG
|
|
BytesToWaitFor DWORDLONG
|
|
UsnJournalID DWORDLONG
|
|
}
|
|
|
|
type USN_RECORD struct {
|
|
RecordLength DWORD
|
|
MajorVersion WORD
|
|
MinorVersion WORD
|
|
FileReferenceNumber DWORDLONG
|
|
ParentFileReferenceNumber DWORDLONG
|
|
Usn USN
|
|
TimeStamp LARGE_INTEGER
|
|
Reason DWORD
|
|
SourceInfo DWORD
|
|
SecurityId DWORD
|
|
FileAttributes DWORD
|
|
FileNameLength WORD
|
|
FileNameOffset WORD
|
|
FileName [1]WCHAR
|
|
}
|
|
|
|
type MFT_ENUM_DATA struct {
|
|
StartFileReferenceNumber DWORDLONG
|
|
LowUsn USN
|
|
HighUsn USN
|
|
}
|
|
|
|
const (
|
|
FSCTL_ENUM_USN_DATA = 0x900B3
|
|
FSCTL_QUERY_USN_JOURNAL = 0x900F4
|
|
FSCTL_READ_USN_JOURNAL = 0x900BB
|
|
O_RDONLY = syscall.O_RDONLY
|
|
O_RDWR = syscall.O_RDWR
|
|
O_CREAT = syscall.O_CREAT
|
|
O_WRONLY = syscall.O_WRONLY
|
|
GENERIC_READ = syscall.GENERIC_READ
|
|
GENERIC_WRITE = syscall.GENERIC_WRITE
|
|
FILE_APPEND_DATA = syscall.FILE_APPEND_DATA
|
|
FILE_SHARE_READ = syscall.FILE_SHARE_READ
|
|
FILE_SHARE_WRITE = syscall.FILE_SHARE_WRITE
|
|
ERROR_FILE_NOT_FOUND = syscall.ERROR_FILE_NOT_FOUND
|
|
O_APPEND = syscall.O_APPEND
|
|
O_CLOEXEC = syscall.O_CLOEXEC
|
|
O_EXCL = syscall.O_EXCL
|
|
O_TRUNC = syscall.O_TRUNC
|
|
CREATE_ALWAYS = syscall.CREATE_ALWAYS
|
|
CREATE_NEW = syscall.CREATE_NEW
|
|
OPEN_ALWAYS = syscall.OPEN_ALWAYS
|
|
TRUNCATE_EXISTING = syscall.TRUNCATE_EXISTING
|
|
OPEN_EXISTING = syscall.OPEN_EXISTING
|
|
FILE_ATTRIBUTE_NORMAL = syscall.FILE_ATTRIBUTE_NORMAL
|
|
FILE_FLAG_BACKUP_SEMANTICS = syscall.FILE_FLAG_BACKUP_SEMANTICS
|
|
FILE_ATTRIBUTE_DIRECTORY = syscall.FILE_ATTRIBUTE_DIRECTORY
|
|
MAX_LONG_PATH = syscall.MAX_LONG_PATH
|
|
)
|
|
|
|
type FILE_ID_DESCRIPTOR struct {
|
|
DwSize DWORD
|
|
Type DWORD
|
|
FileId DWORDLONG
|
|
ObjectId DWORDLONG
|
|
ExtendedFileId DWORDLONG
|
|
}
|
|
|
|
const (
|
|
GMEM_MOVEABLE = 0x0002
|
|
GMEM_ZEROINIT = 0x0040
|
|
GMEM_DDESHARE = 0x2000
|
|
GMEM_SHARE = GMEM_DDESHARE
|
|
GMEM_FIXED = 0x0000
|
|
GMEM_DISCARDABLE = 0x0100
|
|
GMEM_NOT_BANKED = 0x1000
|
|
GMEM_NOTIFY = 0x4000
|
|
GMEM_LOWER = GMEM_NOT_BANKED
|
|
GMEM_VALID_FLAGS = 0x7F72
|
|
GMEM_INVALID_HANDLE = 0x8000
|
|
GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT)
|
|
GPTR = (GMEM_FIXED | GMEM_ZEROINIT)
|
|
)
|