win

package
v0.0.0-...-c5af768 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2022 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

winnt.go

Index

Constants

View Source
const (
	//
	// The th32ProcessID argument is only used if TH32CS_SNAPHEAPLIST or
	// TH32CS_SNAPMODULE is specified. th32ProcessID == 0 means the current
	// process.
	//
	// NOTE that all of the snapshots are global except for the heap and module
	//      lists which are process specific. To enumerate the heap or module
	//      state for all WIN32 processes call with TH32CS_SNAPALL and the
	//      current process. Then for each process in the TH32CS_SNAPPROCESS
	//      list that isn't the current process, do a call with just
	//      TH32CS_SNAPHEAPLIST and/or TH32CS_SNAPMODULE.
	//
	// dwFlags
	//
	TH32CS_SNAPHEAPLIST = 0x00000001
	TH32CS_SNAPPROCESS  = 0x00000002
	TH32CS_SNAPTHREAD   = 0x00000004
	TH32CS_SNAPMODULE   = 0x00000008
	TH32CS_SNAPMODULE32 = 0x00000010
	TH32CS_SNAPALL      = (TH32CS_SNAPHEAPLIST | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD | TH32CS_SNAPMODULE)
	TH32CS_INHERIT      = 0x80000000
)
View Source
const (
	DBT_DEVTYP_DEVICEINTERFACE = 0x00000005 // device interface class

	/*
	 * The following messages are for WM_DEVICECHANGE. The immediate list
	 * is for the wParam. ALL THESE MESSAGES PASS A POINTER TO A STRUCT
	 * STARTING WITH A DWORD SIZE AND HAVING NO POINTER IN THE STRUCT.
	 *
	 */
	DBT_DEVICEARRIVAL           = 0x8000 // system detected a new device
	DBT_DEVICEQUERYREMOVE       = 0x8001 // wants to remove, may fail
	DBT_DEVICEQUERYREMOVEFAILED = 0x8002 // removal aborted
	DBT_DEVICEREMOVEPENDING     = 0x8003 // about to remove, still avail.
	DBT_DEVICEREMOVECOMPLETE    = 0x8004 // device is gone
	DBT_DEVICETYPESPECIFIC      = 0x8005 // type specific event
)
View Source
const (
	TUNNEL_TYPE_NONE   _TUNNEL_TYPE = 0
	TUNNEL_TYPE_OTHER  _TUNNEL_TYPE = 1
	TUNNEL_TYPE_DIRECT _TUNNEL_TYPE = 2
	TUNNEL_TYPE_6TO4   _TUNNEL_TYPE = 11
	TUNNEL_TYPE_ISATAP _TUNNEL_TYPE = 13
	TUNNEL_TYPE_TEREDO _TUNNEL_TYPE = 14
)
View Source
const (
	IfOperStatusUp if_oper_status = 1
	IfOperStatusDown
	IfOperStatusTesting
	IfOperStatusUnknown
	IfOperStatusDormant
	IfOperStatusNotPresent
	IfOperStatusLowerLayerDown
)
View Source
const (
	NET_IF_CONNECTION_DEDICATED _NET_IF_CONNECTION_TYPE = 1
	NET_IF_CONNECTION_PASSIVE
	NET_IF_CONNECTION_DEMAND
	NET_IF_CONNECTION_MAXIMUM
)
View Source
const (
	//
	// These values are from iptypes.h.
	// They need to fit in a 4 bit field.
	//
	IpPrefixOriginOther _NL_PREFIX_ORIGIN = 0
	IpPrefixOriginManual
	IpPrefixOriginWellKnown
	IpPrefixOriginDhcp
	IpPrefixOriginRouterAdvertisement
	IpPrefixOriginUnchanged _NL_PREFIX_ORIGIN = 1 << 4
)
View Source
const (
	//
	// TODO: Remove the Nlso* definitions.
	//
	NlsoOther _NL_SUFFIX_ORIGIN = 0
	NlsoManual
	NlsoWellKnown
	NlsoDhcp
	NlsoLinkLayerAddress
	NlsoRandom

	//
	// These values are from in iptypes.h.
	// They need to fit in a 4 bit field.
	//
	IpSuffixOriginOther _NL_SUFFIX_ORIGIN = 0
	IpSuffixOriginManual
	IpSuffixOriginWellKnown
	IpSuffixOriginDhcp
	IpSuffixOriginLinkLayerAddress
	IpSuffixOriginRandom
	IpSuffixOriginUnchanged _NL_SUFFIX_ORIGIN = 1 << 4
)
View Source
const (
	//
	// TODO: Remove the Nlds* definitions.
	//
	NldsInvalid _NL_DAD_STATE = 0
	NldsTentative
	NldsDuplicate
	NldsDeprecated
	NldsPreferred

	//
	// These values are from in iptypes.h.
	//
	IpDadStateInvalid _NL_DAD_STATE = 0
	IpDadStateTentative
	IpDadStateDuplicate
	IpDadStateDeprecated
	IpDadStatePreferred
)
View Source
const (
	FALSE = 0
	TRUE  = 1
)
View Source
const (
	DEVICE_NOTIFY_WINDOW_HANDLE  = 0x00000000
	DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001
)
View Source
const (
	DETACHED_PROCESS = 0x00000008
	CREATE_NO_WINDOW = 0x08000000

	CREATE_NEW_CONSOLE = 0x00000010

	CREATE_NEW_PROCESS_GROUP   = 0x00000200
	CREATE_UNICODE_ENVIRONMENT = 0x00000400

	NORMAL_PRIORITY_CLASS   = 0x00000020
	IDLE_PRIORITY_CLASS     = 0x00000040
	HIGH_PRIORITY_CLASS     = 0x00000080
	REALTIME_PRIORITY_CLASS = 0x00000100

	STARTF_USESHOWWINDOW    = 0x00000001
	STARTF_USESIZE          = 0x00000002
	STARTF_USEPOSITION      = 0x00000004
	STARTF_USECOUNTCHARS    = 0x00000008
	STARTF_USEFILLATTRIBUTE = 0x00000010
	STARTF_RUNFULLSCREEN    = 0x00000020 // ignored for non-x86 platforms
	STARTF_FORCEONFEEDBACK  = 0x00000040
	STARTF_FORCEOFFFEEDBACK = 0x00000080
	STARTF_USESTDHANDLES    = 0x00000100

	INFINITE = 0xFFFFFFFF // Infinite timeout

	LOGON32_LOGON_INTERACTIVE = 2
	LOGON32_PROVIDER_DEFAULT  = 0
)
View Source
const (
	INVALID_FILE_SIZE        = 0xFFFFFFFF
	INVALID_SET_FILE_POINTER = 0xFFFFFFFF
	INVALID_FILE_ATTRIBUTES  = 0xFFFFFFFF
)
View Source
const (
	SID_REVISION                    = 1 // Current revision level
	SID_MAX_SUB_AUTHORITIES         = 15
	SID_RECOMMENDED_SUB_AUTHORITIES = 1 // Will change to around 6
)
View Source
const (
	WTS_CURRENT_SERVER        = windows.Handle(0)
	WTS_CURRENT_SERVER_HANDLE = windows.Handle(0)
	WTS_CURRENT_SERVER_NAME   = 0
)

* Specifies the current server

View Source
const DOT11_SSID_MAX_LENGTH = 32 // 32 bytes
View Source
const (
	INADDR_NONE uint32 = 0xffffffff
)
View Source
const MAX_ADAPTER_NAME = 128
View Source
const MAX_PATH = 260
View Source
const SECURITY_MAX_SID_SIZE = (12 - 4 + (SID_MAX_SUB_AUTHORITIES * 4))

in a future release.

View Source
const (
	URL_UNESCAPE_INPLACE = 0x00100000
)
View Source
const WTS_CURRENT_SESSION uint32 = 0xFFFFFFFF

* Specifies the current session (SessionId)

Variables

View Source
var (
	IF_OPER_STATUS_NON_OPERATIONAL _INTERNAL_IF_OPER_STATUS = 0
	IF_OPER_STATUS_UNREACHABLE     _INTERNAL_IF_OPER_STATUS = 1
	IF_OPER_STATUS_DISCONNECTED    _INTERNAL_IF_OPER_STATUS = 2
	IF_OPER_STATUS_CONNECTING      _INTERNAL_IF_OPER_STATUS = 3
	IF_OPER_STATUS_CONNECTED       _INTERNAL_IF_OPER_STATUS = 4
	IF_OPER_STATUS_OPERATIONAL     _INTERNAL_IF_OPER_STATUS = 5
)
View Source
var (
	PROCESSOR_ARCHITECTURE_INTEL          = 0
	PROCESSOR_ARCHITECTURE_MIPS           = 1
	PROCESSOR_ARCHITECTURE_ALPHA          = 2
	PROCESSOR_ARCHITECTURE_PPC            = 3
	PROCESSOR_ARCHITECTURE_SHX            = 4
	PROCESSOR_ARCHITECTURE_ARM            = 5
	PROCESSOR_ARCHITECTURE_IA64           = 6
	PROCESSOR_ARCHITECTURE_ALPHA64        = 7
	PROCESSOR_ARCHITECTURE_MSIL           = 8
	PROCESSOR_ARCHITECTURE_AMD64          = 9
	PROCESSOR_ARCHITECTURE_IA32_ON_WIN64  = 10
	PROCESSOR_ARCHITECTURE_NEUTRAL        = 11
	PROCESSOR_ARCHITECTURE_ARM64          = 12
	PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 = 13
	PROCESSOR_ARCHITECTURE_IA32_ON_ARM64  = 14

	PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF

	PRODUCT_UNDEFINED = 0x00000000

	PRODUCT_ULTIMATE                     = 0x00000001
	PRODUCT_HOME_BASIC                   = 0x00000002
	PRODUCT_HOME_PREMIUM                 = 0x00000003
	PRODUCT_ENTERPRISE                   = 0x00000004
	PRODUCT_HOME_BASIC_N                 = 0x00000005
	PRODUCT_BUSINESS                     = 0x00000006
	PRODUCT_STANDARD_SERVER              = 0x00000007
	PRODUCT_DATACENTER_SERVER            = 0x00000008
	PRODUCT_SMALLBUSINESS_SERVER         = 0x00000009
	PRODUCT_ENTERPRISE_SERVER            = 0x0000000A
	PRODUCT_STARTER                      = 0x0000000B
	PRODUCT_DATACENTER_SERVER_CORE       = 0x0000000C
	PRODUCT_STANDARD_SERVER_CORE         = 0x0000000D
	PRODUCT_ENTERPRISE_SERVER_CORE       = 0x0000000E
	PRODUCT_ENTERPRISE_SERVER_IA64       = 0x0000000F
	PRODUCT_BUSINESS_N                   = 0x00000010
	PRODUCT_WEB_SERVER                   = 0x00000011
	PRODUCT_CLUSTER_SERVER               = 0x00000012
	PRODUCT_HOME_SERVER                  = 0x00000013
	PRODUCT_STORAGE_EXPRESS_SERVER       = 0x00000014
	PRODUCT_STORAGE_STANDARD_SERVER      = 0x00000015
	PRODUCT_STORAGE_WORKGROUP_SERVER     = 0x00000016
	PRODUCT_STORAGE_ENTERPRISE_SERVER    = 0x00000017
	PRODUCT_SERVER_FOR_SMALLBUSINESS     = 0x00000018
	PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = 0x00000019

	PRODUCT_UNLICENSED = uint64(0xABCDABCD)

	VER_PLATFORM_WIN32s        = 0
	VER_PLATFORM_WIN32_WINDOWS = 1
	VER_PLATFORM_WIN32_NT      = 2

	VER_NT_WORKSTATION       = 0x0000001
	VER_NT_DOMAIN_CONTROLLER = 0x0000002
	VER_NT_SERVER            = 0x0000003

	GENERIC_READ    = 0x80000000
	GENERIC_WRITE   = 0x40000000
	GENERIC_EXECUTE = 0x20000000
	GENERIC_ALL     = 0x10000000

	READ_CONTROL             = 0x00020000
	STANDARD_RIGHTS_REQUIRED = 0x000F0000
	STANDARD_RIGHTS_READ     = READ_CONTROL
	SYNCHRONIZE              = 0x00100000
	PROCESS_ALL_ACCESS       = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)

	FILE_SHARE_READ                    = 0x00000001
	FILE_SHARE_WRITE                   = 0x00000002
	FILE_SHARE_DELETE                  = 0x00000004
	FILE_ATTRIBUTE_READONLY            = 0x00000001
	FILE_ATTRIBUTE_HIDDEN              = 0x00000002
	FILE_ATTRIBUTE_SYSTEM              = 0x00000004
	FILE_ATTRIBUTE_DIRECTORY           = 0x00000010
	FILE_ATTRIBUTE_ARCHIVE             = 0x00000020
	FILE_ATTRIBUTE_DEVICE              = 0x00000040
	FILE_ATTRIBUTE_NORMAL              = 0x00000080
	FILE_ATTRIBUTE_TEMPORARY           = 0x00000100
	FILE_ATTRIBUTE_SPARSE_FILE         = 0x00000200
	FILE_ATTRIBUTE_REPARSE_POINT       = 0x00000400
	FILE_ATTRIBUTE_COMPRESSED          = 0x00000800
	FILE_ATTRIBUTE_OFFLINE             = 0x00001000
	FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000
	FILE_ATTRIBUTE_ENCRYPTED           = 0x00004000
	FILE_ATTRIBUTE_VIRTUAL             = 0x00010000
	FILE_NOTIFY_CHANGE_FILE_NAME       = 0x00000001
	FILE_NOTIFY_CHANGE_DIR_NAME        = 0x00000002
	FILE_NOTIFY_CHANGE_ATTRIBUTES      = 0x00000004
	FILE_NOTIFY_CHANGE_SIZE            = 0x00000008
	FILE_NOTIFY_CHANGE_LAST_WRITE      = 0x00000010
	FILE_NOTIFY_CHANGE_LAST_ACCESS     = 0x00000020
	FILE_NOTIFY_CHANGE_CREATION        = 0x00000040
	FILE_NOTIFY_CHANGE_SECURITY        = 0x00000100
	FILE_ACTION_ADDED                  = 0x00000001
	FILE_ACTION_REMOVED                = 0x00000002
	FILE_ACTION_MODIFIED               = 0x00000003
	FILE_ACTION_RENAMED_OLD_NAME       = 0x00000004
	FILE_ACTION_RENAMED_NEW_NAME       = 0x00000005
	MAILSLOT_NO_MESSAGE                = 0xFFFFFFFF
	MAILSLOT_WAIT_FOREVER              = 0xFFFFFFFF
	FILE_CASE_SENSITIVE_SEARCH         = 0x00000001
	FILE_CASE_PRESERVED_NAMES          = 0x00000002
	FILE_UNICODE_ON_DISK               = 0x00000004
	FILE_PERSISTENT_ACLS               = 0x00000008
	FILE_FILE_COMPRESSION              = 0x00000010
	FILE_VOLUME_QUOTAS                 = 0x00000020
	FILE_SUPPORTS_SPARSE_FILES         = 0x00000040
	FILE_SUPPORTS_REPARSE_POINTS       = 0x00000080
	FILE_SUPPORTS_REMOTE_STORAGE       = 0x00000100
	FILE_VOLUME_IS_COMPRESSED          = 0x00008000
	FILE_SUPPORTS_OBJECT_IDS           = 0x00010000
	FILE_SUPPORTS_ENCRYPTION           = 0x00020000
	FILE_NAMED_STREAMS                 = 0x00040000
	FILE_READ_ONLY_VOLUME              = 0x00080000
	FILE_SEQUENTIAL_WRITE_ONCE         = 0x00100000
	FILE_SUPPORTS_TRANSACTIONS         = 0x00200000
	FILE_READ_DATA                     = 0x0001
	FILE_READ_ATTRIBUTES               = 0x0080
	FILE_READ_EA                       = 0x0008
	FILE_GENERIC_READ                  = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE)

	CREATE_NEW        = 1
	CREATE_ALWAYS     = 2
	OPEN_EXISTING     = 3
	OPEN_ALWAYS       = 4
	TRUNCATE_EXISTING = 5

	KEY_QUERY_VALUE        = 0x0001
	KEY_SET_VALUE          = 0x0002
	KEY_CREATE_SUB_KEY     = 0x0004
	KEY_ENUMERATE_SUB_KEYS = 0x0008
	KEY_NOTIFY             = 0x0010
	KEY_CREATE_LINK        = 0x0020
	KEY_WOW64_32KEY        = 0x0200
	KEY_WOW64_64KEY        = 0x0100
	KEY_WOW64_RES          = 0x0300

	//
	// MaximumAllowed access type
	//
	MAXIMUM_ALLOWED = 0x02000000

	ANYSIZE_ARRAY = 1

	SE_TCB_NAME = "SeTcbPrivilege"
)

判断操作系统的量

Functions

func CharsPtr

func CharsPtr(s string) uintptr

func CreateEnvironmentBlock

func CreateEnvironmentBlock(hToken windows.Handle, bInherit bool) (unsafe.Pointer, bool)

func CreateProcessA

func CreateProcessA(strApplicationName string, strCommandLine string,
	lpProcessAttributes *windows.SecurityAttributes, lpThreadAttributes *windows.SecurityAttributes,
	bInheritHandles bool, CreationFlags uint32, lpEnvironment unsafe.Pointer, strCurrentDirectory string,
	lpStartupInfo *windows.StartupInfo, lpProcessInformation *windows.ProcessInformation) (bool, windows.Errno)

func DestroyEnvironmentBlock

func DestroyEnvironmentBlock(lpEnvironment unsafe.Pointer) bool

=============================================================================

DestroyEnvironmentBlock

Frees environment variables created by CreateEnvironmentBlock

lpEnvironment - A pointer to the environment block

Returns: true if successful

false if not.  syscall.Errno for more details

=============================================================================

func FAILED

func FAILED(hr HRESULT) bool

func GetComputerName

func GetComputerName() (string, bool)

func GetInterfaceInfo

func GetInterfaceInfo(pIfTable *IP_INTERFACE_INFO, dwOutBufLen *uint32) uint32

func GetTickCount

func GetTickCount() uint32

func GetUserName

func GetUserName() (*uint16, int, bool, syscall.Errno)

func GetVersionEx

func GetVersionEx(ov *OSVERSIONINFOW) bool

func GetVersionExA

func GetVersionExA(ov *OSVERSIONINFOA) bool

func HIWORD

func HIWORD(dw uint32) uint16

func Htons

func Htons(hostshort uint16) uint16

func ImpersonateLoggedOnUser

func ImpersonateLoggedOnUser(hToken windows.Token) (bool, windows.Errno)

func Inet_addr

func Inet_addr(cp string) uint32

func Inet_ntoa

func Inet_ntoa(in In_addr) *byte

func IntPtr

func IntPtr(n int) uintptr

func IpReleaseAddress

func IpReleaseAddress(AdapterInfo *IP_ADAPTER_INDEX_MAP) uint32

func IpRenewAddress

func IpRenewAddress(AdapterInfo *IP_ADAPTER_INDEX_MAP) uint32

func LOWORD

func LOWORD(dw uint32) uint16

func LogonUser

func LogonUser(lpszUsername *uint16, lpszDomain *uint16, lpszPassword *uint16, LogonType uint32, LogonProvider windows.Handle) (windows.Handle, bool)

func NetGetJoinInformation

func NetGetJoinInformation(lpServer *uint16) (error, string, uint32)

func PathQuoteSpaces

func PathQuoteSpaces(szPath *string) bool

func PathRemoveFileSpecA

func PathRemoveFileSpecA(szPath *byte) bool

func PathRemoveFileSpecW

func PathRemoveFileSpecW(szPath *uint16) bool

func SHGetValueA

func SHGetValueA(hkey HKEY, subKey string, value string, pdwType *uint32, pvData unsafe.Pointer, pcbData *uint32) syscall.Errno

func StrPtr

func StrPtr(s string) uintptr

func Touint32

func Touint32(num int) uint32

func UTF16toString

func UTF16toString(p *uint16) string

UTF16toString converts a pointer to a UTF16 string into a Go string.

func UnloadUserProfile

func UnloadUserProfile(hToken windows.Handle, hProfile windows.Handle) bool

=============================================================================

UnloadUserProfile

Unloads a user's profile that was loaded by LoadUserProfile()

hToken - Token for the user, returned from LogonUser() hProfile - hProfile member of the PROFILEINFO structure

Returns: TRUE if successful

FALSE if not.  Call GetLastError() for more details

Note: The caller of this function must have admin privileges on the machine.

=============================================================================

func WTSFreeMemory

func WTSFreeMemory(pMemory uintptr)

func WTSQuerySessionInformation

func WTSQuerySessionInformation(hServer windows.Handle, SessionId uint32, WTSInfoClass WTS_INFO_CLASS) (*byte, int, bool)

func WTSQueryUserToken

func WTSQueryUserToken(SessionId uint32, hToken windows.Handle) (bool, syscall.Errno)

func WaitForSingleObject

func WaitForSingleObject(hHandle windows.Handle, dwMilliseconds uint32) uint32

func Wow64DisableWow64FsRedirection

func Wow64DisableWow64FsRedirection() (unsafe.Pointer, bool)

func Wow64RevertWow64FsRedirection

func Wow64RevertWow64FsRedirection(OldValue unsafe.Pointer) bool

Types

type ATOM

type ATOM uint16

type BOOL

type BOOL uint32

func BoolToBOOL

func BoolToBOOL(value bool) BOOL

type DEV_BROADCAST_DEVICEINTERFACE

type DEV_BROADCAST_DEVICEINTERFACE = DEV_BROADCAST_DEVICEINTERFACE_W

type DEV_BROADCAST_DEVICEINTERFACE_W

type DEV_BROADCAST_DEVICEINTERFACE_W struct {
	Dbcc_size       uint32
	Dbcc_devicetype uint32
	Dbcc_reserved   uint32
	Dbcc_classguid  windows.GUID
	Dbcc_name       []uint16
}

type DOT11_AUTH_ALGORITHM

type DOT11_AUTH_ALGORITHM uint32

// DOT11_AUTH_ALGO_LIST #ifdef __midl // use the 4-byte enum typedef [v1_enum] enum _DOT11_AUTH_ALGORITHM { #else typedef enum _DOT11_AUTH_ALGORITHM { #endif

const (
	DOT11_AUTH_ALGO_80211_OPEN       DOT11_AUTH_ALGORITHM = 1
	DOT11_AUTH_ALGO_80211_SHARED_KEY DOT11_AUTH_ALGORITHM = 2
	DOT11_AUTH_ALGO_WPA              DOT11_AUTH_ALGORITHM = 3
	DOT11_AUTH_ALGO_WPA_PSK          DOT11_AUTH_ALGORITHM = 4
	DOT11_AUTH_ALGO_WPA_NONE         DOT11_AUTH_ALGORITHM = 5 // used in NatSTA only
	DOT11_AUTH_ALGO_RSNA             DOT11_AUTH_ALGORITHM = 6
	DOT11_AUTH_ALGO_RSNA_PSK         DOT11_AUTH_ALGORITHM = 7
	DOT11_AUTH_ALGO_IHV_START        DOT11_AUTH_ALGORITHM = 0x80000000
	DOT11_AUTH_ALGO_IHV_END          DOT11_AUTH_ALGORITHM = 0xffffffff
)

type DOT11_BSS_TYPE

type DOT11_BSS_TYPE uint32
const (
	Dot11_BSS_type_infrastructure DOT11_BSS_TYPE = 1
	Dot11_BSS_type_independent    DOT11_BSS_TYPE = 2
	Dot11_BSS_type_any            DOT11_BSS_TYPE = 3
)

type DOT11_CIPHER_ALGORITHM

type DOT11_CIPHER_ALGORITHM uint32

// Cipher algorithm Ids (for little endian platform) #ifdef __midl // use the 4-byte enum typedef [v1_enum] enum _DOT11_CIPHER_ALGORITHM { #else typedef enum _DOT11_CIPHER_ALGORITHM { #endif

const (
	DOT11_CIPHER_ALGO_NONE          DOT11_CIPHER_ALGORITHM = 0x00
	DOT11_CIPHER_ALGO_WEP40         DOT11_CIPHER_ALGORITHM = 0x01
	DOT11_CIPHER_ALGO_TKIP          DOT11_CIPHER_ALGORITHM = 0x02
	DOT11_CIPHER_ALGO_CCMP          DOT11_CIPHER_ALGORITHM = 0x04
	DOT11_CIPHER_ALGO_WEP104        DOT11_CIPHER_ALGORITHM = 0x05
	DOT11_CIPHER_ALGO_WPA_USE_GROUP DOT11_CIPHER_ALGORITHM = 0x100
	DOT11_CIPHER_ALGO_RSN_USE_GROUP DOT11_CIPHER_ALGORITHM = 0x100
	DOT11_CIPHER_ALGO_WEP           DOT11_CIPHER_ALGORITHM = 0x101
	DOT11_CIPHER_ALGO_IHV_START     DOT11_CIPHER_ALGORITHM = 0x80000000
	DOT11_CIPHER_ALGO_IHV_END       DOT11_CIPHER_ALGORITHM = 0xffffffff
)

type DOT11_PHY_TYPE

type DOT11_PHY_TYPE uint32

#ifdef __midl // use 4-byte enum typedef [v1_enum] enum _DOT11_PHY_TYPE { #else typedef enum _DOT11_PHY_TYPE { #endif

const (
	Dot11_phy_type_unknown    DOT11_PHY_TYPE = 0
	Dot11_phy_type_any        DOT11_PHY_TYPE = Dot11_phy_type_unknown
	Dot11_phy_type_fhss       DOT11_PHY_TYPE = 1
	Dot11_phy_type_dsss       DOT11_PHY_TYPE = 2
	Dot11_phy_type_irbaseband DOT11_PHY_TYPE = 3
	Dot11_phy_type_ofdm       DOT11_PHY_TYPE = 4
	Dot11_phy_type_hrdsss     DOT11_PHY_TYPE = 5
	Dot11_phy_type_erp        DOT11_PHY_TYPE = 6
	Dot11_phy_type_IHV_start  DOT11_PHY_TYPE = 0x80000000
	Dot11_phy_type_IHV_end    DOT11_PHY_TYPE = 0xffffffff
)

type DOT11_SSID

type DOT11_SSID struct {
	// #ifndef __midl
	//     __range(0,32)
	// #endif
	SSIDLength uint32
	SSID       [DOT11_SSID_MAX_LENGTH]byte
}

type HGLOBAL

type HGLOBAL windows.Handle

func GlobalAlloc

func GlobalAlloc(uFlags uint32, dwBytes uintptr) HGLOBAL

func GlobalFree

func GlobalFree(hMem HGLOBAL) HGLOBAL

type HINSTANCE

type HINSTANCE windows.Handle

type HMODULE

type HMODULE uintptr

type HRESULT

type HRESULT uint32

func UrlUnescapeA

func UrlUnescapeA(pszUrl *byte, pszUnescaped *byte, pcchUnescaped *uint32, dwFlags uint32) HRESULT

func UrlUnescapeW

func UrlUnescapeW(pszUrl *uint16, pszUnescaped *uint16, pcchUnescaped *uint32, dwFlags uint32) HRESULT

type HRSRC

type HRSRC uintptr

type HWINEVENTHOOK

type HWINEVENTHOOK windows.Handle

type IFTYPE

type IFTYPE uint64

type IF_INDEX

type IF_INDEX NET_IFINDEX

type IF_LUID

type IF_LUID NET_LUID

IF_LUID

Define the locally unique datalink interface identifier type. This type is persistable.

type IF_OPER_STATUS

type IF_OPER_STATUS if_oper_status

type INTERNAL_IF_OPER_STATUS

type INTERNAL_IF_OPER_STATUS _INTERNAL_IF_OPER_STATUS

type IP_ADAPTER_INDEX_MAP

type IP_ADAPTER_INDEX_MAP struct {
	Index uint32
	Name  [MAX_ADAPTER_NAME]uint16
}

type IP_INTERFACE_INFO

type IP_INTERFACE_INFO struct {
	NumAdapters int32
	Adapter     [1]IP_ADAPTER_INDEX_MAP
}

type In_addr

type In_addr struct {
	S_un S_UN
}

type LANGID

type LANGID uint16

type LCID

type LCID uint32

type LCTYPE

type LCTYPE uint32

type LPARAM

type LPARAM *int32

type LPPROCESSENTRY32

type LPPROCESSENTRY32 *PROCESSENTRY32

type LPPROCESSENTRY32W

type LPPROCESSENTRY32W *PROCESSENTRY32W

type LRESULT

type LRESULT *int32

type NET_IFINDEX

type NET_IFINDEX uint64

Interface Index (ifIndex)

type NET_IFTYPE

type NET_IFTYPE uint16

Interface Type (IANA ifType)

type NET_IF_COMPARTMENT_ID

type NET_IF_COMPARTMENT_ID uint32
const (
	NET_IF_COMPARTMENT_ID_UNSPECIFIED NET_IF_COMPARTMENT_ID = 0
	NET_IF_COMPARTMENT_ID_PRIMARY     NET_IF_COMPARTMENT_ID = 1
)

Define compartment ID type:

type NET_IF_CONNECTION_TYPE

type NET_IF_CONNECTION_TYPE _NET_IF_CONNECTION_TYPE

type NET_IF_NETWORK_GUID

type NET_IF_NETWORK_GUID windows.GUID

Define NetworkGUID type:

type NET_LUID

type NET_LUID NET_LUID_LH

Need to make this visible on all platforms (for the purpose of IF_LUID).

type NET_LUID_LH

type NET_LUID_LH _NET_LUID_LH

type NL_DAD_STATE

type NL_DAD_STATE _NL_DAD_STATE

type NL_PREFIX_ORIGIN

type NL_PREFIX_ORIGIN _NL_PREFIX_ORIGIN

type NL_SUFFIX_ORIGIN

type NL_SUFFIX_ORIGIN _NL_SUFFIX_ORIGIN

type OSVERSIONINFO

type OSVERSIONINFO OSVERSIONINFOW

type OSVERSIONINFOA

type OSVERSIONINFOA struct {
	OSVersionInfoSize uint32
	MajorVersion      uint32
	MinorVersion      uint32
	BuildNumber       uint32
	PlatformId        uint32
	SzCSDVersion      [128]byte // Maintenance string for PSS usage
}

type OSVERSIONINFOW

type OSVERSIONINFOW struct {
	OSVersionInfoSize uint32
	MajorVersion      uint32
	MinorVersion      uint32
	BuildNumber       uint32
	PlatformId        uint32
	SzCSDVersion      [128]uint16 // Maintenance string for PSS usage
}

type OSVersionInfoA

type OSVersionInfoA struct {
	OSVersionInfoSize uint32    // 结构体大小, in bytes. Set this member to sizeof(OSVERSIONINFOEX).
	MajorVersion      uint32    // 主版本号
	MinorVersion      uint32    // 次版本号
	BuildNumber       uint32    // 编译版本号
	PlatformId        uint32    // 系统支持的平台
	CSDVersion        [128]byte // 系统补丁包的名称  CSDVersion[128]
}

#region OSVERSIONINFOA OSVERSIONINFOA structure (winnt.h) docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-osversioninfoa

typedef struct _OSVERSIONINFOA {
  uint32 dwOSVersionInfoSize;
  uint32 dwMajorVersion;
  uint32 dwMinorVersion;
  uint32 dwBuildNumber;
  uint32 dwPlatformId;
  CHAR  szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;

type OSVersionInfoExA

type OSVersionInfoExA struct {
	OSVersionInfoSize uint32    // 结构体大小, in bytes. Set this member to sizeof(OSVERSIONINFOEX).
	MajorVersion      uint32    // 主版本号
	MinorVersion      uint32    // 次版本号
	BuildNumber       uint32    // 编译版本号
	PlatformId        uint32    // 系统支持的平台
	CSDVersion        [128]byte // 系统补丁包的名称  CSDVersion[128]// 这个128是必须的 不然就会出现"The data area passed to a system call is too small."
	ServicePackMajor  uint16    // 系统补丁包的主版本
	ServicePackMinor  uint16    // 系统补丁包的次版本
	SuiteMask         uint16    // 标识系统上的程序组
	ProductType       byte      // 标识系统类型
	Reserved          byte      // 保留,未使用

} // 这个结构在Windows 2000后出现,老版本的OSVERSIONINFO结构没有wServicePackMajor、wServicePackMinor、wSuiteMask、wProductType和wReserved这几个成员。

func GetVersionExW

func GetVersionExW() (OSVersionInfoExA, error)

#region GetVersionExW 函数 (sysinfoapi.h) docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexw

Kernel32.dll GetVersionExW function (sysinfoapi.h) NOT_BUILD_WINDOWS_DEPRECATE BOOL GetVersionExW(

[in, out] LPOSVERSIONINFOW lpVersionInformation

);

type PIF_INDEX

type PIF_INDEX *NET_IFINDEX

type PIF_LUID

type PIF_LUID *NET_LUID

type PNET_IFINDEX

type PNET_IFINDEX *uint64

type PNET_IFTYPE

type PNET_IFTYPE *uint16

type PNET_IF_COMPARTMENT_ID

type PNET_IF_COMPARTMENT_ID *uint32

type PNET_IF_CONNECTION_TYPE

type PNET_IF_CONNECTION_TYPE *_NET_IF_CONNECTION_TYPE

type PNET_IF_NETWORK_GUID

type PNET_IF_NETWORK_GUID *windows.GUID

type PNET_LUID

type PNET_LUID *NET_LUID

type PNET_LUID_LH

type PNET_LUID_LH *_NET_LUID_LH

type PPROCESSENTRY32

type PPROCESSENTRY32 *PROCESSENTRY32

type PPROCESSENTRY32W

type PPROCESSENTRY32W *PROCESSENTRY32W

type PROCESSENTRY32

type PROCESSENTRY32 PROCESSENTRY32W

type PROCESSENTRY32W

type PROCESSENTRY32W tagPROCESSENTRY32W

type PTUNNEL_TYPE

type PTUNNEL_TYPE *_TUNNEL_TYPE

type SID

type SID struct {
	Revision            byte
	SubAuthorityCount   byte
	IdentifierAuthority SID_IDENTIFIER_AUTHORITY
	// #ifdef MIDL_PASS
	//    [size_is(SubAuthorityCount)] uint32 SubAuthority[*];
	// #else // MIDL_PASS
	SubAuthority [1]uint32 /*ANYSIZE_ARRAY*/

}

type SID_AND_ATTRIBUTES

type SID_AND_ATTRIBUTES struct {
	Sid        unsafe.Pointer
	Attributes uint32
}

type SID_IDENTIFIER_AUTHORITY

type SID_IDENTIFIER_AUTHORITY struct {
	Value [6]byte
}

type SID_NAME_USE

type SID_NAME_USE uint32
const (
	SidTypeUser           SID_NAME_USE = 1
	SidTypeGroup          SID_NAME_USE = 2
	SidTypeDomain         SID_NAME_USE = 3
	SidTypeAlias          SID_NAME_USE = 4
	SidTypeWellKnownGroup SID_NAME_USE = 5
	SidTypeDeletedAccount SID_NAME_USE = 6
	SidTypeInvalid        SID_NAME_USE = 7
	SidTypeUnknown        SID_NAME_USE = 8
	SidTypeComputer       SID_NAME_USE = 9
	SidTypeLabel          SID_NAME_USE = 10
)

type S_UN

type S_UN struct {
	S_un_b S_UN_B
	S_un_w S_UN_W
	S_addr uint32
}

type S_UN_B

type S_UN_B struct {
	S_b1, S_b2, S_b3, S_b4 byte
}

IPv4 Internet address This is an 'on-wire' format structure.

type S_UN_W

type S_UN_W struct {
	S_w1, S_w2 uint16
}

type Sockaddr_in

type Sockaddr_in struct {
	// contains filtered or unexported fields
}

type TOKEN_INFORMATION_CLASS

type TOKEN_INFORMATION_CLASS uint32
const (
	TokenUser                  TOKEN_INFORMATION_CLASS = 1
	TokenGroups                TOKEN_INFORMATION_CLASS = 2
	TokenPrivileges            TOKEN_INFORMATION_CLASS = 3
	TokenOwner                 TOKEN_INFORMATION_CLASS = 4
	TokenPrimaryGroup          TOKEN_INFORMATION_CLASS = 5
	TokenDefaultDacl           TOKEN_INFORMATION_CLASS = 6
	TokenSource                TOKEN_INFORMATION_CLASS = 7
	TokenType                  TOKEN_INFORMATION_CLASS = 8
	TokenImpersonationLevel    TOKEN_INFORMATION_CLASS = 9
	TokenStatistics            TOKEN_INFORMATION_CLASS = 10
	TokenRestrictedSids        TOKEN_INFORMATION_CLASS = 11
	TokenSessionId             TOKEN_INFORMATION_CLASS = 12
	TokenGroupsAndPrivileges   TOKEN_INFORMATION_CLASS = 13
	TokenSessionReference      TOKEN_INFORMATION_CLASS = 14
	TokenSandBoxInert          TOKEN_INFORMATION_CLASS = 15
	TokenAuditPolicy           TOKEN_INFORMATION_CLASS = 16
	TokenOrigin                TOKEN_INFORMATION_CLASS = 17
	TokenElevationType         TOKEN_INFORMATION_CLASS = 18
	TokenLinkedToken           TOKEN_INFORMATION_CLASS = 19
	TokenElevation             TOKEN_INFORMATION_CLASS = 20
	TokenHasRestrictions       TOKEN_INFORMATION_CLASS = 21
	TokenAccessInformation     TOKEN_INFORMATION_CLASS = 22
	TokenVirtualizationAllowed TOKEN_INFORMATION_CLASS = 23
	TokenVirtualizationEnabled TOKEN_INFORMATION_CLASS = 24
	TokenIntegrityLevel        TOKEN_INFORMATION_CLASS = 25
	TokenUIAccess              TOKEN_INFORMATION_CLASS = 26
	TokenMandatoryPolicy       TOKEN_INFORMATION_CLASS = 27
	TokenLogonSid              TOKEN_INFORMATION_CLASS = 28
	MaxTokenInfoClass          TOKEN_INFORMATION_CLASS = 256 // MaxTokenInfoClass should always be the last enum
)

type TOKEN_USER

type TOKEN_USER struct {
	User SID_AND_ATTRIBUTES
}

type TUNNEL_TYPE

type TUNNEL_TYPE _TUNNEL_TYPE

type WPARAM

type WPARAM *uint

type WTS_CONNECTSTATE_CLASS

type WTS_CONNECTSTATE_CLASS uint
const (
	WTSActive       WTS_CONNECTSTATE_CLASS = 0 // User logged on to WinStation
	WTSConnected    WTS_CONNECTSTATE_CLASS = 1 // WinStation connected to client
	WTSConnectQuery WTS_CONNECTSTATE_CLASS = 2 // In the process of connecting to client
	WTSShadow       WTS_CONNECTSTATE_CLASS = 3 // Shadowing another WinStation
	WTSDisconnected WTS_CONNECTSTATE_CLASS = 4 // WinStation logged on without client
	WTSIdle         WTS_CONNECTSTATE_CLASS = 5 // Waiting for client to connect
	WTSListen       WTS_CONNECTSTATE_CLASS = 6 // WinStation is listening for connection
	WTSReset        WTS_CONNECTSTATE_CLASS = 7 // WinStation is being reset
	WTSDown         WTS_CONNECTSTATE_CLASS = 8 // WinStation is down due to error
	WTSInit         WTS_CONNECTSTATE_CLASS = 9 // WinStation in initialization
)

type WTS_INFO_CLASS

type WTS_INFO_CLASS uint32
const (
	WTSInitialProgram     WTS_INFO_CLASS = 0
	WTSApplicationName    WTS_INFO_CLASS = 1
	WTSWorkingDirectory   WTS_INFO_CLASS = 2
	WTSOEMId              WTS_INFO_CLASS = 3
	WTSSessionId          WTS_INFO_CLASS = 4
	WTSUserName           WTS_INFO_CLASS = 5
	WTSWinStationName     WTS_INFO_CLASS = 6
	WTSDomainName         WTS_INFO_CLASS = 7
	WTSConnectState       WTS_INFO_CLASS = 8
	WTSClientBuildNumber  WTS_INFO_CLASS = 9
	WTSClientName         WTS_INFO_CLASS = 10
	WTSClientDirectory    WTS_INFO_CLASS = 11
	WTSClientProductId    WTS_INFO_CLASS = 12
	WTSClientHardwareId   WTS_INFO_CLASS = 13
	WTSClientAddress      WTS_INFO_CLASS = 14
	WTSClientDisplay      WTS_INFO_CLASS = 15
	WTSClientProtocolType WTS_INFO_CLASS = 16
	WTSIdleTime           WTS_INFO_CLASS = 17
	WTSLogonTime          WTS_INFO_CLASS = 18
	WTSIncomingBytes      WTS_INFO_CLASS = 19
	WTSOutgoingBytes      WTS_INFO_CLASS = 20
	WTSIncomingFrames     WTS_INFO_CLASS = 21
	WTSOutgoingFrames     WTS_INFO_CLASS = 22
)

type WTS_SESSION_INFOW

type WTS_SESSION_INFOW struct {
	SessionId       uint32  // session id
	PWinStationName *uint16 // name of WinStation this session is
	// connected to
	State WTS_CONNECTSTATE_CLASS // connection state (see enum)
}

func WTSEnumerateSessions

func WTSEnumerateSessions(hServer windows.Handle, Reserved uint32, Version uint32) ([](*WTS_SESSION_INFOW), uint32, bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL