Documentation
¶
Overview ¶
winnt.go
Index ¶
- Constants
- Variables
- func CharsPtr(s string) uintptr
- func CloseHandle(hObject syscall.Handle) bool
- func CreateEnvironmentBlock(hToken syscall.Handle, bInherit bool) (unsafe.Pointer, bool)
- func CreateFile(lpFileName *uint16, dwDesiredAccess DWORD, dwShareMode DWORD, ...) syscall.Handle
- func CreateMutex(lpMutexAttributes LPSECURITY_ATTRIBUTES, bInitialOwner bool, lpName *uint16) (syscall.Handle, error)
- func CreateProcessA(strApplicationName string, strCommandLine string, ...) (bool, syscall.Errno)
- func CreateProcessAsUser(hToken syscall.Handle, strApplicationName string, strCommandLine string, ...) (bool, syscall.Errno)
- func CreateToolhelp32Snapshot(dwFlags DWORD, th32ProcessID DWORD) (syscall.Handle, syscall.Errno)
- func DestroyEnvironmentBlock(lpEnvironment unsafe.Pointer) bool
- func DeviceIoControl(hDevice syscall.Handle, dwIoControlCode DWORD, lpInBuffer unsafe.Pointer, ...) bool
- func GetAdaptersAddresses(Family uint64, Flags uint64, Reserved unsafe.Pointer, ...) uint64
- func GetComputerName() (string, bool)
- func GetCurrentProcess() syscall.Handle
- func GetModuleFileName(hModule HMODULE) (string, bool)
- func GetTickCount() uint32
- func GetVersionEx(ov *OSVERSIONINFOA) bool
- func HIWORD(dw uint32) uint16
- func IntPtr(n int) uintptr
- func IsWow64Process(hProcess syscall.Handle) bool
- func LOWORD(dw uint32) uint16
- func OpenEvent(desiredAccess uint32, bInheritHandle bool, lpName *uint16) syscall.Handle
- func OpenProcess(dwDesiredAccess DWORD, bInheritHandle bool, dwProcessId DWORD) syscall.Handle
- func PathQuoteSpaces(szPath *string) bool
- func Process32First(hSnapshot syscall.Handle, lppe LPPROCESSENTRY32) bool
- func Process32Next(hSnapshot syscall.Handle, lppe LPPROCESSENTRY32) bool
- func ReadFile(hFile syscall.Handle, nNumberOfBytesToRead DWORD, lpNumberOfBytesRead *DWORD, ...) bool
- func ReleaseMutex(hMutex syscall.Handle) bool
- func SHGetValueA(hkey HKEY, subKey string, value string, pdwType *DWORD, pvData unsafe.Pointer, ...) uint32
- func SetEvent(hEvent syscall.Handle) bool
- func StrPtr(s string) uintptr
- func UTF16toString(p *uint16) string
- func WTSQueryUserToken(SessionId uint32, hToken syscall.Handle) (bool, syscall.Errno)
- func Wow64DisableWow64FsRedirection() (unsafe.Pointer, bool)
- func Wow64RevertWow64FsRedirection(OldValue unsafe.Pointer) bool
- type ADDRESS_FAMILY
- type ATOM
- type BOOL
- type BYTE
- type DWORD
- type DWORD_PTR
- type HGLOBAL
- type HINSTANCE
- type HMODULE
- type HRESULT
- type HRSRC
- type HWINEVENTHOOK
- type IFTYPE
- type IF_INDEX
- type IF_LUID
- type IF_OPER_STATUS
- type IP_ADAPTER_ADDRESSES
- type IP_ADAPTER_ADDRESSES_LH
- type IP_ADAPTER_ANYCAST_ADDRESS_XP
- type IP_ADAPTER_DNS_SERVER_ADDRESS_XP
- type IP_ADAPTER_GATEWAY_ADDRESS_LH
- type IP_ADAPTER_INFO
- type IP_ADAPTER_MULTICAST_ADDRESS_XP
- type IP_ADAPTER_PREFIX_XP
- type IP_ADAPTER_UNICAST_ADDRESS_LH
- type IP_ADAPTER_WINS_SERVER_ADDRESS_LH
- type IP_ADDRESS_STRING
- type IP_ADDR_STRING
- type IP_DAD_STATE
- type IP_MASK_STRING
- type IP_PREFIX_ORIGIN
- type IP_SUFFIX_ORIGIN
- type LANGID
- type LCID
- type LCTYPE
- type LMSTR
- type LPBYTE
- type LPDWORD
- type LPOVERLAPPED
- type LPPROCESSENTRY32
- type LPPROCESSENTRY32W
- type LPPROCESS_INFORMATION
- type LPSECURITY_ATTRIBUTES
- type LPSOCKADDR
- type LPSOCKET_ADDRESS
- type LPSTARTUPINFO
- type LPSTARTUPINFOW
- type LPTSTR
- type LPVOID
- type LPWSTR
- type NET_IFINDEX
- type NET_IFTYPE
- type NET_IF_COMPARTMENT_ID
- type NET_IF_CONNECTION_TYPE
- type NET_IF_NETWORK_GUID
- type NET_LUID
- type NET_LUID_LH
- type NL_DAD_STATE
- type NL_PREFIX_ORIGIN
- type NL_SUFFIX_ORIGIN
- type OSVERSIONINFOA
- type OSVersionInfoA
- type OSVersionInfoExA
- type OVERLAPPED
- type PIF_INDEX
- type PIF_LUID
- type PIP_ADAPTER_ADDRESSES
- type PIP_ADAPTER_ADDRESSES_LH
- type PIP_ADAPTER_ANYCAST_ADDRESS_XP
- type PIP_ADAPTER_DNS_SERVER_ADDRESS_XP
- type PIP_ADAPTER_GATEWAY_ADDRESS_LH
- type PIP_ADAPTER_INFO
- type PIP_ADAPTER_MULTICAST_ADDRESS_XP
- type PIP_ADAPTER_PREFIX_XP
- type PIP_ADAPTER_UNICAST_ADDRESS_LH
- type PIP_ADAPTER_WINS_SERVER_ADDRESS_LH
- type PIP_ADDRESS_STRING
- type PIP_ADDR_STRING
- type PIP_MASK_STRING
- type PNET_IFINDEX
- type PNET_IFTYPE
- type PNET_IF_COMPARTMENT_ID
- type PNET_IF_CONNECTION_TYPE
- type PNET_IF_NETWORK_GUID
- type PNET_LUID
- type PNET_LUID_LH
- type PPROCESSENTRY32
- type PPROCESSENTRY32W
- type PPROCESS_INFORMATION
- type PROCESSENTRY32
- type PROCESSENTRY32W
- type PROCESS_INFORMATION
- type PSECURITY_ATTRIBUTES
- type PSOCKADDR
- type PSOCKET_ADDRESS
- type PTUNNEL_TYPE
- type SECURITY_ATTRIBUTES
- type SOCKADDR
- type SOCKET_ADDRESS
- type STARTUPINFO
- type STARTUPINFOW
- type TUNNEL_TYPE
- type Timeval
- type ULong
- type WCHAR
- type WORD
Constants ¶
const ( MAX_ADAPTER_DESCRIPTION_LENGTH = 128 // arb. MAX_ADAPTER_NAME_LENGTH = 256 // arb. MAX_ADAPTER_ADDRESS_LENGTH = 8 // arb. DEFAULT_MINIMUM_ENTITIES = 32 // arb. MAX_HOSTNAME_LEN = 128 // arb. MAX_DOMAIN_NAME_LEN = 128 // arb. MAX_SCOPE_ID_LEN = 256 // arb. MAX_DHCPV6_DUID_LENGTH = 130 // RFC 3315. )
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 )
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 )
const ( IfOperStatusUp if_oper_status = 1 IfOperStatusDown IfOperStatusTesting IfOperStatusUnknown IfOperStatusDormant IfOperStatusNotPresent IfOperStatusLowerLayerDown )
const ( NET_IF_CONNECTION_DEDICATED _NET_IF_CONNECTION_TYPE = 1 NET_IF_CONNECTION_PASSIVE NET_IF_CONNECTION_DEMAND NET_IF_CONNECTION_MAXIMUM )
const ( ERROR_SUCCESS = 0 ERROR_INVALID_FUNCTION = 1 ERROR_FILE_NOT_FOUND = 2 ERROR_INVALID_PARAMETER = 87 ERROR_INSUFFICIENT_BUFFER = 122 ERROR_MORE_DATA = 234 )
Error codes
const ( STANDARD_RIGHTS_REQUIRED = 0x000F0000 SYNCHRONIZE = 0x00100000 EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3 )
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 )
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 )
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 )
const ( FALSE = 0 TRUE = 1 )
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 )
const ( INVALID_HANDLE_VALUE = syscall.Handle(0xFFFFFFFF) INVALID_FILE_SIZE = 0xFFFFFFFF INVALID_SET_FILE_POINTER = 0xFFFFFFFF INVALID_FILE_ATTRIBUTES = 0xFFFFFFFF )
const ERROR_ALREADY_EXISTS uint32 = 183
MessageId: ERROR_ALREADY_EXISTS
MessageText:
Cannot create a file when that file already exists.
const MAX_PATH = 260
Variables ¶
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 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 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 )
判断操作系统的量
Functions ¶
func CloseHandle ¶
func CreateEnvironmentBlock ¶
func CreateFile ¶
func CreateMutex ¶
func CreateProcessA ¶
func CreateProcessA(strApplicationName string, strCommandLine string, lpProcessAttributes LPSECURITY_ATTRIBUTES, lpThreadAttributes LPSECURITY_ATTRIBUTES, bInheritHandles bool, dwCreationFlags DWORD, lpEnvironment unsafe.Pointer, strCurrentDirectory string, lpStartupInfo LPSTARTUPINFO, lpProcessInformation LPPROCESS_INFORMATION) (bool, syscall.Errno)
func CreateProcessAsUser ¶
func CreateProcessAsUser(hToken syscall.Handle, strApplicationName string, strCommandLine string, lpProcessAttributes LPSECURITY_ATTRIBUTES, lpThreadAttributes LPSECURITY_ATTRIBUTES, bInheritHandles bool, dwCreationFlags DWORD, lpEnvironment unsafe.Pointer, strCurrentDirectory string, lpStartupInfo LPSTARTUPINFO, lpProcessInformation LPPROCESS_INFORMATION) (bool, syscall.Errno)
func DestroyEnvironmentBlock ¶
=============================================================================
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 DeviceIoControl ¶
func GetAdaptersAddresses ¶
func GetComputerName ¶
func GetCurrentProcess ¶
func GetModuleFileName ¶
func GetTickCount ¶
func GetTickCount() uint32
func GetVersionEx ¶
func GetVersionEx(ov *OSVERSIONINFOA) bool
func IsWow64Process ¶
func OpenProcess ¶
func PathQuoteSpaces ¶
func Process32First ¶
func Process32First(hSnapshot syscall.Handle, lppe LPPROCESSENTRY32) bool
func Process32Next ¶
func Process32Next(hSnapshot syscall.Handle, lppe LPPROCESSENTRY32) bool
func ReleaseMutex ¶
func SHGetValueA ¶
func UTF16toString ¶
UTF16toString converts a pointer to a UTF16 string into a Go string.
func WTSQueryUserToken ¶
Types ¶
type ADDRESS_FAMILY ¶
type ADDRESS_FAMILY uint16
type DWORD ¶
type DWORD uint32
const ( WAIT_FAILED DWORD = 0xFFFFFFFF WAIT_OBJECT_0 = STATUS_WAIT_0 + 0 )
const (
STATUS_WAIT_0 DWORD = 0x00000000
)
type HWINEVENTHOOK ¶
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 IP_ADAPTER_ADDRESSES ¶
type IP_ADAPTER_ADDRESSES IP_ADAPTER_ADDRESSES_LH
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
type IP_ADAPTER_ADDRESSES_LH ¶
type IP_ADAPTER_ADDRESSES_LH _IP_ADAPTER_ADDRESSES_LH
type IP_ADAPTER_ANYCAST_ADDRESS_XP ¶
type IP_ADAPTER_ANYCAST_ADDRESS_XP _IP_ADAPTER_ANYCAST_ADDRESS_XP
type IP_ADAPTER_DNS_SERVER_ADDRESS_XP ¶
type IP_ADAPTER_DNS_SERVER_ADDRESS_XP _IP_ADAPTER_DNS_SERVER_ADDRESS_XP
type IP_ADAPTER_GATEWAY_ADDRESS_LH ¶
type IP_ADAPTER_GATEWAY_ADDRESS_LH _IP_ADAPTER_GATEWAY_ADDRESS_LH
type IP_ADAPTER_INFO ¶
type IP_ADAPTER_INFO _IP_ADAPTER_INFO
type IP_ADAPTER_MULTICAST_ADDRESS_XP ¶
type IP_ADAPTER_MULTICAST_ADDRESS_XP _IP_ADAPTER_MULTICAST_ADDRESS_XP
type IP_ADAPTER_PREFIX_XP ¶
type IP_ADAPTER_PREFIX_XP _IP_ADAPTER_PREFIX_XP
type IP_ADAPTER_UNICAST_ADDRESS_LH ¶
type IP_ADAPTER_UNICAST_ADDRESS_LH _IP_ADAPTER_UNICAST_ADDRESS_LH
type IP_ADAPTER_WINS_SERVER_ADDRESS_LH ¶
type IP_ADAPTER_WINS_SERVER_ADDRESS_LH _IP_ADAPTER_WINS_SERVER_ADDRESS_LH
type IP_ADDRESS_STRING ¶
type IP_ADDRESS_STRING struct {
String [4 * 4]rune
}
IP_ADDRESS_STRING - store an IP address as a dotted decimal string
type IP_ADDR_STRING ¶
type IP_ADDR_STRING _IP_ADDR_STRING
type IP_DAD_STATE ¶
type IP_DAD_STATE NL_DAD_STATE
type IP_MASK_STRING ¶
type IP_MASK_STRING IP_ADDRESS_STRING
type IP_PREFIX_ORIGIN ¶
type IP_PREFIX_ORIGIN NL_PREFIX_ORIGIN
The following types require Winsock2.
type IP_SUFFIX_ORIGIN ¶
type IP_SUFFIX_ORIGIN NL_SUFFIX_ORIGIN
type LPOVERLAPPED ¶
type LPOVERLAPPED *_OVERLAPPED
type LPPROCESSENTRY32 ¶
type LPPROCESSENTRY32 *PROCESSENTRY32
type LPPROCESSENTRY32W ¶
type LPPROCESSENTRY32W *PROCESSENTRY32W
type LPPROCESS_INFORMATION ¶
type LPPROCESS_INFORMATION *PROCESS_INFORMATION
type LPSECURITY_ATTRIBUTES ¶
type LPSECURITY_ATTRIBUTES *_SECURITY_ATTRIBUTES
type LPSOCKADDR ¶
type LPSOCKADDR *sockaddr
type LPSOCKET_ADDRESS ¶
type LPSOCKET_ADDRESS *_SOCKET_ADDRESS
type LPSTARTUPINFOW ¶
type LPSTARTUPINFOW *STARTUPINFOW
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_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 OSVERSIONINFOA ¶
type OSVersionInfoA ¶
type OSVersionInfoA struct { OSVersionInfoSize DWORD // 结构体大小, in bytes. Set this member to sizeof(OSVERSIONINFOEX). MajorVersion DWORD // 主版本号 MinorVersion DWORD // 次版本号 BuildNumber DWORD // 编译版本号 PlatformId DWORD // 系统支持的平台 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 { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[128]; } OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
type OSVersionInfoExA ¶
type OSVersionInfoExA struct { OSVersionInfoSize DWORD // 结构体大小, in bytes. Set this member to sizeof(OSVERSIONINFOEX). MajorVersion DWORD // 主版本号 MinorVersion DWORD // 次版本号 BuildNumber DWORD // 编译版本号 PlatformId DWORD // 系统支持的平台 CSDVersion [128]byte // 系统补丁包的名称 CSDVersion[128]// 这个128是必须的 不然就会出现"The data area passed to a system call is too small." ServicePackMajor WORD // 系统补丁包的主版本 ServicePackMinor WORD // 系统补丁包的次版本 SuiteMask WORD // 标识系统上的程序组 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 OVERLAPPED ¶
type OVERLAPPED _OVERLAPPED
type PIF_INDEX ¶
type PIF_INDEX *NET_IFINDEX
type PIP_ADAPTER_ADDRESSES ¶
type PIP_ADAPTER_ADDRESSES *IP_ADAPTER_ADDRESSES_LH
type PIP_ADAPTER_ADDRESSES_LH ¶
type PIP_ADAPTER_ADDRESSES_LH *_IP_ADAPTER_ADDRESSES_LH
type PIP_ADAPTER_ANYCAST_ADDRESS_XP ¶
type PIP_ADAPTER_ANYCAST_ADDRESS_XP *_IP_ADAPTER_ANYCAST_ADDRESS_XP
type PIP_ADAPTER_DNS_SERVER_ADDRESS_XP ¶
type PIP_ADAPTER_DNS_SERVER_ADDRESS_XP *_IP_ADAPTER_DNS_SERVER_ADDRESS_XP
type PIP_ADAPTER_GATEWAY_ADDRESS_LH ¶
type PIP_ADAPTER_GATEWAY_ADDRESS_LH *_IP_ADAPTER_GATEWAY_ADDRESS_LH
type PIP_ADAPTER_INFO ¶
type PIP_ADAPTER_INFO *IP_ADAPTER_INFO
type PIP_ADAPTER_MULTICAST_ADDRESS_XP ¶
type PIP_ADAPTER_MULTICAST_ADDRESS_XP *_IP_ADAPTER_MULTICAST_ADDRESS_XP
type PIP_ADAPTER_PREFIX_XP ¶
type PIP_ADAPTER_PREFIX_XP *_IP_ADAPTER_PREFIX_XP
type PIP_ADAPTER_UNICAST_ADDRESS_LH ¶
type PIP_ADAPTER_UNICAST_ADDRESS_LH *_IP_ADAPTER_UNICAST_ADDRESS_LH
type PIP_ADAPTER_WINS_SERVER_ADDRESS_LH ¶
type PIP_ADAPTER_WINS_SERVER_ADDRESS_LH *_IP_ADAPTER_WINS_SERVER_ADDRESS_LH
type PIP_ADDRESS_STRING ¶
type PIP_ADDRESS_STRING *IP_ADDRESS_STRING
type PIP_ADDR_STRING ¶
type PIP_ADDR_STRING *IP_ADDR_STRING
type PIP_MASK_STRING ¶
type PIP_MASK_STRING *IP_ADDRESS_STRING
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_LUID_LH ¶
type PNET_LUID_LH *_NET_LUID_LH
type PPROCESSENTRY32 ¶
type PPROCESSENTRY32 *PROCESSENTRY32
type PPROCESSENTRY32W ¶
type PPROCESSENTRY32W *PROCESSENTRY32W
type PPROCESS_INFORMATION ¶
type PPROCESS_INFORMATION *PROCESS_INFORMATION
type PROCESSENTRY32 ¶
type PROCESSENTRY32 PROCESSENTRY32W
type PROCESSENTRY32W ¶
type PROCESSENTRY32W tagPROCESSENTRY32W
type PROCESS_INFORMATION ¶
type PROCESS_INFORMATION _PROCESS_INFORMATION
type PSECURITY_ATTRIBUTES ¶
type PSECURITY_ATTRIBUTES *_SECURITY_ATTRIBUTES
type PSOCKET_ADDRESS ¶
type PSOCKET_ADDRESS *_SOCKET_ADDRESS
type PTUNNEL_TYPE ¶
type PTUNNEL_TYPE *_TUNNEL_TYPE
type SECURITY_ATTRIBUTES ¶
type SECURITY_ATTRIBUTES _SECURITY_ATTRIBUTES
type SOCKET_ADDRESS ¶
type SOCKET_ADDRESS _SOCKET_ADDRESS
type STARTUPINFOW ¶
type STARTUPINFOW _STARTUPINFOW
type TUNNEL_TYPE ¶
type TUNNEL_TYPE _TUNNEL_TYPE
type Timeval ¶
type Timeval struct {
// contains filtered or unexported fields
}
* Structure used in select() call, taken from the BSD file sys/time.h.