Source file
src/syscall/types_windows.go
1
2
3
4
5 package syscall
6
7 const (
8
9 ERROR_FILE_NOT_FOUND Errno = 2
10 ERROR_PATH_NOT_FOUND Errno = 3
11 ERROR_ACCESS_DENIED Errno = 5
12 ERROR_NO_MORE_FILES Errno = 18
13 ERROR_HANDLE_EOF Errno = 38
14 ERROR_NETNAME_DELETED Errno = 64
15 ERROR_FILE_EXISTS Errno = 80
16 ERROR_BROKEN_PIPE Errno = 109
17 ERROR_BUFFER_OVERFLOW Errno = 111
18 ERROR_INSUFFICIENT_BUFFER Errno = 122
19 ERROR_MOD_NOT_FOUND Errno = 126
20 ERROR_PROC_NOT_FOUND Errno = 127
21 ERROR_DIR_NOT_EMPTY Errno = 145
22 ERROR_ALREADY_EXISTS Errno = 183
23 ERROR_ENVVAR_NOT_FOUND Errno = 203
24 ERROR_MORE_DATA Errno = 234
25 ERROR_OPERATION_ABORTED Errno = 995
26 ERROR_IO_PENDING Errno = 997
27 ERROR_NOT_FOUND Errno = 1168
28 ERROR_PRIVILEGE_NOT_HELD Errno = 1314
29 WSAEACCES Errno = 10013
30 WSAECONNABORTED Errno = 10053
31 WSAECONNRESET Errno = 10054
32 )
33
34 const (
35
36 O_RDONLY = 0x00000
37 O_WRONLY = 0x00001
38 O_RDWR = 0x00002
39 O_CREAT = 0x00040
40 O_EXCL = 0x00080
41 O_NOCTTY = 0x00100
42 O_TRUNC = 0x00200
43 O_NONBLOCK = 0x00800
44 O_APPEND = 0x00400
45 O_SYNC = 0x01000
46 O_ASYNC = 0x02000
47 O_CLOEXEC = 0x80000
48 )
49
50 const (
51
52 SIGHUP = Signal(0x1)
53 SIGINT = Signal(0x2)
54 SIGQUIT = Signal(0x3)
55 SIGILL = Signal(0x4)
56 SIGTRAP = Signal(0x5)
57 SIGABRT = Signal(0x6)
58 SIGBUS = Signal(0x7)
59 SIGFPE = Signal(0x8)
60 SIGKILL = Signal(0x9)
61 SIGSEGV = Signal(0xb)
62 SIGPIPE = Signal(0xd)
63 SIGALRM = Signal(0xe)
64 SIGTERM = Signal(0xf)
65 )
66
67 var signals = [...]string{
68 1: "hangup",
69 2: "interrupt",
70 3: "quit",
71 4: "illegal instruction",
72 5: "trace/breakpoint trap",
73 6: "aborted",
74 7: "bus error",
75 8: "floating point exception",
76 9: "killed",
77 10: "user defined signal 1",
78 11: "segmentation fault",
79 12: "user defined signal 2",
80 13: "broken pipe",
81 14: "alarm clock",
82 15: "terminated",
83 }
84
85 const (
86 GENERIC_READ = 0x80000000
87 GENERIC_WRITE = 0x40000000
88 GENERIC_EXECUTE = 0x20000000
89 GENERIC_ALL = 0x10000000
90
91 FILE_LIST_DIRECTORY = 0x00000001
92 FILE_APPEND_DATA = 0x00000004
93 FILE_WRITE_ATTRIBUTES = 0x00000100
94
95 FILE_SHARE_READ = 0x00000001
96 FILE_SHARE_WRITE = 0x00000002
97 FILE_SHARE_DELETE = 0x00000004
98 FILE_ATTRIBUTE_READONLY = 0x00000001
99 FILE_ATTRIBUTE_HIDDEN = 0x00000002
100 FILE_ATTRIBUTE_SYSTEM = 0x00000004
101 FILE_ATTRIBUTE_DIRECTORY = 0x00000010
102 FILE_ATTRIBUTE_ARCHIVE = 0x00000020
103 FILE_ATTRIBUTE_NORMAL = 0x00000080
104 FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400
105
106 INVALID_FILE_ATTRIBUTES = 0xffffffff
107
108 CREATE_NEW = 1
109 CREATE_ALWAYS = 2
110 OPEN_EXISTING = 3
111 OPEN_ALWAYS = 4
112 TRUNCATE_EXISTING = 5
113
114 FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
115 FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
116 FILE_FLAG_OVERLAPPED = 0x40000000
117
118 HANDLE_FLAG_INHERIT = 0x00000001
119 STARTF_USESTDHANDLES = 0x00000100
120 STARTF_USESHOWWINDOW = 0x00000001
121 DUPLICATE_CLOSE_SOURCE = 0x00000001
122 DUPLICATE_SAME_ACCESS = 0x00000002
123
124 STD_INPUT_HANDLE = -10
125 STD_OUTPUT_HANDLE = -11
126 STD_ERROR_HANDLE = -12
127
128 FILE_BEGIN = 0
129 FILE_CURRENT = 1
130 FILE_END = 2
131
132 LANG_ENGLISH = 0x09
133 SUBLANG_ENGLISH_US = 0x01
134
135 FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
136 FORMAT_MESSAGE_IGNORE_INSERTS = 512
137 FORMAT_MESSAGE_FROM_STRING = 1024
138 FORMAT_MESSAGE_FROM_HMODULE = 2048
139 FORMAT_MESSAGE_FROM_SYSTEM = 4096
140 FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
141 FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
142
143 MAX_PATH = 260
144 MAX_LONG_PATH = 32768
145
146 MAX_COMPUTERNAME_LENGTH = 15
147
148 TIME_ZONE_ID_UNKNOWN = 0
149 TIME_ZONE_ID_STANDARD = 1
150
151 TIME_ZONE_ID_DAYLIGHT = 2
152 IGNORE = 0
153 INFINITE = 0xffffffff
154
155 WAIT_TIMEOUT = 258
156 WAIT_ABANDONED = 0x00000080
157 WAIT_OBJECT_0 = 0x00000000
158 WAIT_FAILED = 0xFFFFFFFF
159
160 CREATE_NEW_PROCESS_GROUP = 0x00000200
161 CREATE_UNICODE_ENVIRONMENT = 0x00000400
162
163 PROCESS_TERMINATE = 1
164 PROCESS_QUERY_INFORMATION = 0x00000400
165 SYNCHRONIZE = 0x00100000
166
167 PAGE_READONLY = 0x02
168 PAGE_READWRITE = 0x04
169 PAGE_WRITECOPY = 0x08
170 PAGE_EXECUTE_READ = 0x20
171 PAGE_EXECUTE_READWRITE = 0x40
172 PAGE_EXECUTE_WRITECOPY = 0x80
173
174 FILE_MAP_COPY = 0x01
175 FILE_MAP_WRITE = 0x02
176 FILE_MAP_READ = 0x04
177 FILE_MAP_EXECUTE = 0x20
178
179 CTRL_C_EVENT = 0
180 CTRL_BREAK_EVENT = 1
181 CTRL_CLOSE_EVENT = 2
182 CTRL_LOGOFF_EVENT = 5
183 CTRL_SHUTDOWN_EVENT = 6
184 )
185
186 const (
187
188 TH32CS_SNAPHEAPLIST = 0x01
189 TH32CS_SNAPPROCESS = 0x02
190 TH32CS_SNAPTHREAD = 0x04
191 TH32CS_SNAPMODULE = 0x08
192 TH32CS_SNAPMODULE32 = 0x10
193 TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD
194 TH32CS_INHERIT = 0x80000000
195 )
196
197 const (
198
199 FILE_NOTIFY_CHANGE_FILE_NAME = 1 << iota
200 FILE_NOTIFY_CHANGE_DIR_NAME
201 FILE_NOTIFY_CHANGE_ATTRIBUTES
202 FILE_NOTIFY_CHANGE_SIZE
203 FILE_NOTIFY_CHANGE_LAST_WRITE
204 FILE_NOTIFY_CHANGE_LAST_ACCESS
205 FILE_NOTIFY_CHANGE_CREATION
206 )
207
208 const (
209
210 FILE_ACTION_ADDED = iota + 1
211 FILE_ACTION_REMOVED
212 FILE_ACTION_MODIFIED
213 FILE_ACTION_RENAMED_OLD_NAME
214 FILE_ACTION_RENAMED_NEW_NAME
215 )
216
217 const (
218
219 PROV_RSA_FULL = 1
220 PROV_RSA_SIG = 2
221 PROV_DSS = 3
222 PROV_FORTEZZA = 4
223 PROV_MS_EXCHANGE = 5
224 PROV_SSL = 6
225 PROV_RSA_SCHANNEL = 12
226 PROV_DSS_DH = 13
227 PROV_EC_ECDSA_SIG = 14
228 PROV_EC_ECNRA_SIG = 15
229 PROV_EC_ECDSA_FULL = 16
230 PROV_EC_ECNRA_FULL = 17
231 PROV_DH_SCHANNEL = 18
232 PROV_SPYRUS_LYNKS = 20
233 PROV_RNG = 21
234 PROV_INTEL_SEC = 22
235 PROV_REPLACE_OWF = 23
236 PROV_RSA_AES = 24
237 CRYPT_VERIFYCONTEXT = 0xF0000000
238 CRYPT_NEWKEYSET = 0x00000008
239 CRYPT_DELETEKEYSET = 0x00000010
240 CRYPT_MACHINE_KEYSET = 0x00000020
241 CRYPT_SILENT = 0x00000040
242 CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
243
244 USAGE_MATCH_TYPE_AND = 0
245 USAGE_MATCH_TYPE_OR = 1
246
247 X509_ASN_ENCODING = 0x00000001
248 PKCS_7_ASN_ENCODING = 0x00010000
249
250 CERT_STORE_PROV_MEMORY = 2
251
252 CERT_STORE_ADD_ALWAYS = 4
253
254 CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004
255
256 CERT_TRUST_NO_ERROR = 0x00000000
257 CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001
258 CERT_TRUST_IS_REVOKED = 0x00000004
259 CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008
260 CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010
261 CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020
262 CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040
263 CERT_TRUST_IS_CYCLIC = 0x00000080
264 CERT_TRUST_INVALID_EXTENSION = 0x00000100
265 CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200
266 CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400
267 CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800
268 CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000
269 CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000
270 CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000
271 CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000
272 CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000
273 CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000
274 CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000
275 CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000
276
277 CERT_CHAIN_POLICY_BASE = 1
278 CERT_CHAIN_POLICY_AUTHENTICODE = 2
279 CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3
280 CERT_CHAIN_POLICY_SSL = 4
281 CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5
282 CERT_CHAIN_POLICY_NT_AUTH = 6
283 CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7
284 CERT_CHAIN_POLICY_EV = 8
285
286 CERT_E_EXPIRED = 0x800B0101
287 CERT_E_ROLE = 0x800B0103
288 CERT_E_PURPOSE = 0x800B0106
289 CERT_E_UNTRUSTEDROOT = 0x800B0109
290 CERT_E_CN_NO_MATCH = 0x800B010F
291
292 AUTHTYPE_CLIENT = 1
293 AUTHTYPE_SERVER = 2
294 )
295
296 var (
297 OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00")
298 OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00")
299 OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00")
300 )
301
302
303
304
305
306
307
308 type Pointer *struct{}
309
310
311 type Timeval struct {
312 Sec int32
313 Usec int32
314 }
315
316 func (tv *Timeval) Nanoseconds() int64 {
317 return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
318 }
319
320 func NsecToTimeval(nsec int64) (tv Timeval) {
321 tv.Sec = int32(nsec / 1e9)
322 tv.Usec = int32(nsec % 1e9 / 1e3)
323 return
324 }
325
326 type SecurityAttributes struct {
327 Length uint32
328 SecurityDescriptor uintptr
329 InheritHandle uint32
330 }
331
332 type Overlapped struct {
333 Internal uintptr
334 InternalHigh uintptr
335 Offset uint32
336 OffsetHigh uint32
337 HEvent Handle
338 }
339
340 type FileNotifyInformation struct {
341 NextEntryOffset uint32
342 Action uint32
343 FileNameLength uint32
344 FileName uint16
345 }
346
347 type Filetime struct {
348 LowDateTime uint32
349 HighDateTime uint32
350 }
351
352
353
354 func (ft *Filetime) Nanoseconds() int64 {
355
356 nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
357
358 nsec -= 116444736000000000
359
360 nsec *= 100
361 return nsec
362 }
363
364 func NsecToFiletime(nsec int64) (ft Filetime) {
365
366 nsec /= 100
367
368 nsec += 116444736000000000
369
370 ft.LowDateTime = uint32(nsec & 0xffffffff)
371 ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
372 return ft
373 }
374
375 type Win32finddata struct {
376 FileAttributes uint32
377 CreationTime Filetime
378 LastAccessTime Filetime
379 LastWriteTime Filetime
380 FileSizeHigh uint32
381 FileSizeLow uint32
382 Reserved0 uint32
383 Reserved1 uint32
384 FileName [MAX_PATH - 1]uint16
385 AlternateFileName [13]uint16
386 }
387
388
389
390 type win32finddata1 struct {
391 FileAttributes uint32
392 CreationTime Filetime
393 LastAccessTime Filetime
394 LastWriteTime Filetime
395 FileSizeHigh uint32
396 FileSizeLow uint32
397 Reserved0 uint32
398 Reserved1 uint32
399 FileName [MAX_PATH]uint16
400 AlternateFileName [14]uint16
401
402
403
404
405
406
407
408
409 }
410
411 func copyFindData(dst *Win32finddata, src *win32finddata1) {
412 dst.FileAttributes = src.FileAttributes
413 dst.CreationTime = src.CreationTime
414 dst.LastAccessTime = src.LastAccessTime
415 dst.LastWriteTime = src.LastWriteTime
416 dst.FileSizeHigh = src.FileSizeHigh
417 dst.FileSizeLow = src.FileSizeLow
418 dst.Reserved0 = src.Reserved0
419 dst.Reserved1 = src.Reserved1
420
421
422 copy(dst.FileName[:], src.FileName[:])
423 copy(dst.AlternateFileName[:], src.AlternateFileName[:])
424 }
425
426 type ByHandleFileInformation struct {
427 FileAttributes uint32
428 CreationTime Filetime
429 LastAccessTime Filetime
430 LastWriteTime Filetime
431 VolumeSerialNumber uint32
432 FileSizeHigh uint32
433 FileSizeLow uint32
434 NumberOfLinks uint32
435 FileIndexHigh uint32
436 FileIndexLow uint32
437 }
438
439 const (
440 GetFileExInfoStandard = 0
441 GetFileExMaxInfoLevel = 1
442 )
443
444 type Win32FileAttributeData struct {
445 FileAttributes uint32
446 CreationTime Filetime
447 LastAccessTime Filetime
448 LastWriteTime Filetime
449 FileSizeHigh uint32
450 FileSizeLow uint32
451 }
452
453
454 const (
455
456 SW_HIDE = 0
457 SW_NORMAL = 1
458 SW_SHOWNORMAL = 1
459 SW_SHOWMINIMIZED = 2
460 SW_SHOWMAXIMIZED = 3
461 SW_MAXIMIZE = 3
462 SW_SHOWNOACTIVATE = 4
463 SW_SHOW = 5
464 SW_MINIMIZE = 6
465 SW_SHOWMINNOACTIVE = 7
466 SW_SHOWNA = 8
467 SW_RESTORE = 9
468 SW_SHOWDEFAULT = 10
469 SW_FORCEMINIMIZE = 11
470 )
471
472 type StartupInfo struct {
473 Cb uint32
474 _ *uint16
475 Desktop *uint16
476 Title *uint16
477 X uint32
478 Y uint32
479 XSize uint32
480 YSize uint32
481 XCountChars uint32
482 YCountChars uint32
483 FillAttribute uint32
484 Flags uint32
485 ShowWindow uint16
486 _ uint16
487 _ *byte
488 StdInput Handle
489 StdOutput Handle
490 StdErr Handle
491 }
492
493 type _PROC_THREAD_ATTRIBUTE_LIST struct {
494 _ [1]byte
495 }
496
497 const (
498 _PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000
499 _PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002
500 )
501
502 type _STARTUPINFOEXW struct {
503 StartupInfo
504 ProcThreadAttributeList *_PROC_THREAD_ATTRIBUTE_LIST
505 }
506
507 const _EXTENDED_STARTUPINFO_PRESENT = 0x00080000
508
509 type ProcessInformation struct {
510 Process Handle
511 Thread Handle
512 ProcessId uint32
513 ThreadId uint32
514 }
515
516 type ProcessEntry32 struct {
517 Size uint32
518 Usage uint32
519 ProcessID uint32
520 DefaultHeapID uintptr
521 ModuleID uint32
522 Threads uint32
523 ParentProcessID uint32
524 PriClassBase int32
525 Flags uint32
526 ExeFile [MAX_PATH]uint16
527 }
528
529 type Systemtime struct {
530 Year uint16
531 Month uint16
532 DayOfWeek uint16
533 Day uint16
534 Hour uint16
535 Minute uint16
536 Second uint16
537 Milliseconds uint16
538 }
539
540 type Timezoneinformation struct {
541 Bias int32
542 StandardName [32]uint16
543 StandardDate Systemtime
544 StandardBias int32
545 DaylightName [32]uint16
546 DaylightDate Systemtime
547 DaylightBias int32
548 }
549
550
551
552 const (
553 AF_UNSPEC = 0
554 AF_UNIX = 1
555 AF_INET = 2
556 AF_INET6 = 23
557 AF_NETBIOS = 17
558
559 SOCK_STREAM = 1
560 SOCK_DGRAM = 2
561 SOCK_RAW = 3
562 SOCK_SEQPACKET = 5
563
564 IPPROTO_IP = 0
565 IPPROTO_IPV6 = 0x29
566 IPPROTO_TCP = 6
567 IPPROTO_UDP = 17
568
569 SOL_SOCKET = 0xffff
570 SO_REUSEADDR = 4
571 SO_KEEPALIVE = 8
572 SO_DONTROUTE = 16
573 SO_BROADCAST = 32
574 SO_LINGER = 128
575 SO_RCVBUF = 0x1002
576 SO_SNDBUF = 0x1001
577 SO_UPDATE_ACCEPT_CONTEXT = 0x700b
578 SO_UPDATE_CONNECT_CONTEXT = 0x7010
579
580 IOC_OUT = 0x40000000
581 IOC_IN = 0x80000000
582 IOC_VENDOR = 0x18000000
583 IOC_INOUT = IOC_IN | IOC_OUT
584 IOC_WS2 = 0x08000000
585 SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6
586 SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4
587 SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12
588
589
590
591 IP_TOS = 0x3
592 IP_TTL = 0x4
593 IP_MULTICAST_IF = 0x9
594 IP_MULTICAST_TTL = 0xa
595 IP_MULTICAST_LOOP = 0xb
596 IP_ADD_MEMBERSHIP = 0xc
597 IP_DROP_MEMBERSHIP = 0xd
598
599 IPV6_V6ONLY = 0x1b
600 IPV6_UNICAST_HOPS = 0x4
601 IPV6_MULTICAST_IF = 0x9
602 IPV6_MULTICAST_HOPS = 0xa
603 IPV6_MULTICAST_LOOP = 0xb
604 IPV6_JOIN_GROUP = 0xc
605 IPV6_LEAVE_GROUP = 0xd
606
607 SOMAXCONN = 0x7fffffff
608
609 TCP_NODELAY = 1
610
611 SHUT_RD = 0
612 SHUT_WR = 1
613 SHUT_RDWR = 2
614
615 WSADESCRIPTION_LEN = 256
616 WSASYS_STATUS_LEN = 128
617 )
618
619 type WSABuf struct {
620 Len uint32
621 Buf *byte
622 }
623
624
625 const (
626 S_IFMT = 0x1f000
627 S_IFIFO = 0x1000
628 S_IFCHR = 0x2000
629 S_IFDIR = 0x4000
630 S_IFBLK = 0x6000
631 S_IFREG = 0x8000
632 S_IFLNK = 0xa000
633 S_IFSOCK = 0xc000
634 S_ISUID = 0x800
635 S_ISGID = 0x400
636 S_ISVTX = 0x200
637 S_IRUSR = 0x100
638 S_IWRITE = 0x80
639 S_IWUSR = 0x80
640 S_IXUSR = 0x40
641 )
642
643 const (
644 FILE_TYPE_CHAR = 0x0002
645 FILE_TYPE_DISK = 0x0001
646 FILE_TYPE_PIPE = 0x0003
647 FILE_TYPE_REMOTE = 0x8000
648 FILE_TYPE_UNKNOWN = 0x0000
649 )
650
651 type Hostent struct {
652 Name *byte
653 Aliases **byte
654 AddrType uint16
655 Length uint16
656 AddrList **byte
657 }
658
659 type Protoent struct {
660 Name *byte
661 Aliases **byte
662 Proto uint16
663 }
664
665 const (
666 DNS_TYPE_A = 0x0001
667 DNS_TYPE_NS = 0x0002
668 DNS_TYPE_MD = 0x0003
669 DNS_TYPE_MF = 0x0004
670 DNS_TYPE_CNAME = 0x0005
671 DNS_TYPE_SOA = 0x0006
672 DNS_TYPE_MB = 0x0007
673 DNS_TYPE_MG = 0x0008
674 DNS_TYPE_MR = 0x0009
675 DNS_TYPE_NULL = 0x000a
676 DNS_TYPE_WKS = 0x000b
677 DNS_TYPE_PTR = 0x000c
678 DNS_TYPE_HINFO = 0x000d
679 DNS_TYPE_MINFO = 0x000e
680 DNS_TYPE_MX = 0x000f
681 DNS_TYPE_TEXT = 0x0010
682 DNS_TYPE_RP = 0x0011
683 DNS_TYPE_AFSDB = 0x0012
684 DNS_TYPE_X25 = 0x0013
685 DNS_TYPE_ISDN = 0x0014
686 DNS_TYPE_RT = 0x0015
687 DNS_TYPE_NSAP = 0x0016
688 DNS_TYPE_NSAPPTR = 0x0017
689 DNS_TYPE_SIG = 0x0018
690 DNS_TYPE_KEY = 0x0019
691 DNS_TYPE_PX = 0x001a
692 DNS_TYPE_GPOS = 0x001b
693 DNS_TYPE_AAAA = 0x001c
694 DNS_TYPE_LOC = 0x001d
695 DNS_TYPE_NXT = 0x001e
696 DNS_TYPE_EID = 0x001f
697 DNS_TYPE_NIMLOC = 0x0020
698 DNS_TYPE_SRV = 0x0021
699 DNS_TYPE_ATMA = 0x0022
700 DNS_TYPE_NAPTR = 0x0023
701 DNS_TYPE_KX = 0x0024
702 DNS_TYPE_CERT = 0x0025
703 DNS_TYPE_A6 = 0x0026
704 DNS_TYPE_DNAME = 0x0027
705 DNS_TYPE_SINK = 0x0028
706 DNS_TYPE_OPT = 0x0029
707 DNS_TYPE_DS = 0x002B
708 DNS_TYPE_RRSIG = 0x002E
709 DNS_TYPE_NSEC = 0x002F
710 DNS_TYPE_DNSKEY = 0x0030
711 DNS_TYPE_DHCID = 0x0031
712 DNS_TYPE_UINFO = 0x0064
713 DNS_TYPE_UID = 0x0065
714 DNS_TYPE_GID = 0x0066
715 DNS_TYPE_UNSPEC = 0x0067
716 DNS_TYPE_ADDRS = 0x00f8
717 DNS_TYPE_TKEY = 0x00f9
718 DNS_TYPE_TSIG = 0x00fa
719 DNS_TYPE_IXFR = 0x00fb
720 DNS_TYPE_AXFR = 0x00fc
721 DNS_TYPE_MAILB = 0x00fd
722 DNS_TYPE_MAILA = 0x00fe
723 DNS_TYPE_ALL = 0x00ff
724 DNS_TYPE_ANY = 0x00ff
725 DNS_TYPE_WINS = 0xff01
726 DNS_TYPE_WINSR = 0xff02
727 DNS_TYPE_NBSTAT = 0xff01
728 )
729
730 const (
731 DNS_INFO_NO_RECORDS = 0x251D
732 )
733
734 const (
735
736 DnsSectionQuestion = 0x0000
737 DnsSectionAnswer = 0x0001
738 DnsSectionAuthority = 0x0002
739 DnsSectionAdditional = 0x0003
740 )
741
742 type DNSSRVData struct {
743 Target *uint16
744 Priority uint16
745 Weight uint16
746 Port uint16
747 Pad uint16
748 }
749
750 type DNSPTRData struct {
751 Host *uint16
752 }
753
754 type DNSMXData struct {
755 NameExchange *uint16
756 Preference uint16
757 Pad uint16
758 }
759
760 type DNSTXTData struct {
761 StringCount uint16
762 StringArray [1]*uint16
763 }
764
765 type DNSRecord struct {
766 Next *DNSRecord
767 Name *uint16
768 Type uint16
769 Length uint16
770 Dw uint32
771 Ttl uint32
772 Reserved uint32
773 Data [40]byte
774 }
775
776 const (
777 TF_DISCONNECT = 1
778 TF_REUSE_SOCKET = 2
779 TF_WRITE_BEHIND = 4
780 TF_USE_DEFAULT_WORKER = 0
781 TF_USE_SYSTEM_THREAD = 16
782 TF_USE_KERNEL_APC = 32
783 )
784
785 type TransmitFileBuffers struct {
786 Head uintptr
787 HeadLength uint32
788 Tail uintptr
789 TailLength uint32
790 }
791
792 const (
793 IFF_UP = 1
794 IFF_BROADCAST = 2
795 IFF_LOOPBACK = 4
796 IFF_POINTTOPOINT = 8
797 IFF_MULTICAST = 16
798 )
799
800 const SIO_GET_INTERFACE_LIST = 0x4004747F
801
802
803
804
805 type SockaddrGen [24]byte
806
807 type InterfaceInfo struct {
808 Flags uint32
809 Address SockaddrGen
810 BroadcastAddress SockaddrGen
811 Netmask SockaddrGen
812 }
813
814 type IpAddressString struct {
815 String [16]byte
816 }
817
818 type IpMaskString IpAddressString
819
820 type IpAddrString struct {
821 Next *IpAddrString
822 IpAddress IpAddressString
823 IpMask IpMaskString
824 Context uint32
825 }
826
827 const MAX_ADAPTER_NAME_LENGTH = 256
828 const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
829 const MAX_ADAPTER_ADDRESS_LENGTH = 8
830
831 type IpAdapterInfo struct {
832 Next *IpAdapterInfo
833 ComboIndex uint32
834 AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
835 Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
836 AddressLength uint32
837 Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
838 Index uint32
839 Type uint32
840 DhcpEnabled uint32
841 CurrentIpAddress *IpAddrString
842 IpAddressList IpAddrString
843 GatewayList IpAddrString
844 DhcpServer IpAddrString
845 HaveWins bool
846 PrimaryWinsServer IpAddrString
847 SecondaryWinsServer IpAddrString
848 LeaseObtained int64
849 LeaseExpires int64
850 }
851
852 const MAXLEN_PHYSADDR = 8
853 const MAX_INTERFACE_NAME_LEN = 256
854 const MAXLEN_IFDESCR = 256
855
856 type MibIfRow struct {
857 Name [MAX_INTERFACE_NAME_LEN]uint16
858 Index uint32
859 Type uint32
860 Mtu uint32
861 Speed uint32
862 PhysAddrLen uint32
863 PhysAddr [MAXLEN_PHYSADDR]byte
864 AdminStatus uint32
865 OperStatus uint32
866 LastChange uint32
867 InOctets uint32
868 InUcastPkts uint32
869 InNUcastPkts uint32
870 InDiscards uint32
871 InErrors uint32
872 InUnknownProtos uint32
873 OutOctets uint32
874 OutUcastPkts uint32
875 OutNUcastPkts uint32
876 OutDiscards uint32
877 OutErrors uint32
878 OutQLen uint32
879 DescrLen uint32
880 Descr [MAXLEN_IFDESCR]byte
881 }
882
883 type CertInfo struct {
884
885 }
886
887 type CertContext struct {
888 EncodingType uint32
889 EncodedCert *byte
890 Length uint32
891 CertInfo *CertInfo
892 Store Handle
893 }
894
895 type CertChainContext struct {
896 Size uint32
897 TrustStatus CertTrustStatus
898 ChainCount uint32
899 Chains **CertSimpleChain
900 LowerQualityChainCount uint32
901 LowerQualityChains **CertChainContext
902 HasRevocationFreshnessTime uint32
903 RevocationFreshnessTime uint32
904 }
905
906 type CertTrustListInfo struct {
907
908 }
909
910 type CertSimpleChain struct {
911 Size uint32
912 TrustStatus CertTrustStatus
913 NumElements uint32
914 Elements **CertChainElement
915 TrustListInfo *CertTrustListInfo
916 HasRevocationFreshnessTime uint32
917 RevocationFreshnessTime uint32
918 }
919
920 type CertChainElement struct {
921 Size uint32
922 CertContext *CertContext
923 TrustStatus CertTrustStatus
924 RevocationInfo *CertRevocationInfo
925 IssuanceUsage *CertEnhKeyUsage
926 ApplicationUsage *CertEnhKeyUsage
927 ExtendedErrorInfo *uint16
928 }
929
930 type CertRevocationCrlInfo struct {
931
932 }
933
934 type CertRevocationInfo struct {
935 Size uint32
936 RevocationResult uint32
937 RevocationOid *byte
938 OidSpecificInfo Pointer
939 HasFreshnessTime uint32
940 FreshnessTime uint32
941 CrlInfo *CertRevocationCrlInfo
942 }
943
944 type CertTrustStatus struct {
945 ErrorStatus uint32
946 InfoStatus uint32
947 }
948
949 type CertUsageMatch struct {
950 Type uint32
951 Usage CertEnhKeyUsage
952 }
953
954 type CertEnhKeyUsage struct {
955 Length uint32
956 UsageIdentifiers **byte
957 }
958
959 type CertChainPara struct {
960 Size uint32
961 RequestedUsage CertUsageMatch
962 RequstedIssuancePolicy CertUsageMatch
963 URLRetrievalTimeout uint32
964 CheckRevocationFreshnessTime uint32
965 RevocationFreshnessTime uint32
966 CacheResync *Filetime
967 }
968
969 type CertChainPolicyPara struct {
970 Size uint32
971 Flags uint32
972 ExtraPolicyPara Pointer
973 }
974
975 type SSLExtraCertChainPolicyPara struct {
976 Size uint32
977 AuthType uint32
978 Checks uint32
979 ServerName *uint16
980 }
981
982 type CertChainPolicyStatus struct {
983 Size uint32
984 Error uint32
985 ChainIndex uint32
986 ElementIndex uint32
987 ExtraPolicyStatus Pointer
988 }
989
990 const (
991
992 HKEY_CLASSES_ROOT = 0x80000000 + iota
993 HKEY_CURRENT_USER
994 HKEY_LOCAL_MACHINE
995 HKEY_USERS
996 HKEY_PERFORMANCE_DATA
997 HKEY_CURRENT_CONFIG
998 HKEY_DYN_DATA
999
1000 KEY_QUERY_VALUE = 1
1001 KEY_SET_VALUE = 2
1002 KEY_CREATE_SUB_KEY = 4
1003 KEY_ENUMERATE_SUB_KEYS = 8
1004 KEY_NOTIFY = 16
1005 KEY_CREATE_LINK = 32
1006 KEY_WRITE = 0x20006
1007 KEY_EXECUTE = 0x20019
1008 KEY_READ = 0x20019
1009 KEY_WOW64_64KEY = 0x0100
1010 KEY_WOW64_32KEY = 0x0200
1011 KEY_ALL_ACCESS = 0xf003f
1012 )
1013
1014 const (
1015
1016 REG_NONE = iota
1017 REG_SZ
1018 REG_EXPAND_SZ
1019 REG_BINARY
1020 REG_DWORD_LITTLE_ENDIAN
1021 REG_DWORD_BIG_ENDIAN
1022 REG_LINK
1023 REG_MULTI_SZ
1024 REG_RESOURCE_LIST
1025 REG_FULL_RESOURCE_DESCRIPTOR
1026 REG_RESOURCE_REQUIREMENTS_LIST
1027 REG_QWORD_LITTLE_ENDIAN
1028 REG_DWORD = REG_DWORD_LITTLE_ENDIAN
1029 REG_QWORD = REG_QWORD_LITTLE_ENDIAN
1030 )
1031
1032 type AddrinfoW struct {
1033 Flags int32
1034 Family int32
1035 Socktype int32
1036 Protocol int32
1037 Addrlen uintptr
1038 Canonname *uint16
1039 Addr Pointer
1040 Next *AddrinfoW
1041 }
1042
1043 const (
1044 AI_PASSIVE = 1
1045 AI_CANONNAME = 2
1046 AI_NUMERICHOST = 4
1047 )
1048
1049 type GUID struct {
1050 Data1 uint32
1051 Data2 uint16
1052 Data3 uint16
1053 Data4 [8]byte
1054 }
1055
1056 var WSAID_CONNECTEX = GUID{
1057 0x25a207b9,
1058 0xddf3,
1059 0x4660,
1060 [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},
1061 }
1062
1063 const (
1064 FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1
1065 FILE_SKIP_SET_EVENT_ON_HANDLE = 2
1066 )
1067
1068 const (
1069 WSAPROTOCOL_LEN = 255
1070 MAX_PROTOCOL_CHAIN = 7
1071 BASE_PROTOCOL = 1
1072 LAYERED_PROTOCOL = 0
1073
1074 XP1_CONNECTIONLESS = 0x00000001
1075 XP1_GUARANTEED_DELIVERY = 0x00000002
1076 XP1_GUARANTEED_ORDER = 0x00000004
1077 XP1_MESSAGE_ORIENTED = 0x00000008
1078 XP1_PSEUDO_STREAM = 0x00000010
1079 XP1_GRACEFUL_CLOSE = 0x00000020
1080 XP1_EXPEDITED_DATA = 0x00000040
1081 XP1_CONNECT_DATA = 0x00000080
1082 XP1_DISCONNECT_DATA = 0x00000100
1083 XP1_SUPPORT_BROADCAST = 0x00000200
1084 XP1_SUPPORT_MULTIPOINT = 0x00000400
1085 XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800
1086 XP1_MULTIPOINT_DATA_PLANE = 0x00001000
1087 XP1_QOS_SUPPORTED = 0x00002000
1088 XP1_UNI_SEND = 0x00008000
1089 XP1_UNI_RECV = 0x00010000
1090 XP1_IFS_HANDLES = 0x00020000
1091 XP1_PARTIAL_MESSAGE = 0x00040000
1092 XP1_SAN_SUPPORT_SDP = 0x00080000
1093
1094 PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001
1095 PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002
1096 PFL_HIDDEN = 0x00000004
1097 PFL_MATCHES_PROTOCOL_ZERO = 0x00000008
1098 PFL_NETWORKDIRECT_PROVIDER = 0x00000010
1099 )
1100
1101 type WSAProtocolInfo struct {
1102 ServiceFlags1 uint32
1103 ServiceFlags2 uint32
1104 ServiceFlags3 uint32
1105 ServiceFlags4 uint32
1106 ProviderFlags uint32
1107 ProviderId GUID
1108 CatalogEntryId uint32
1109 ProtocolChain WSAProtocolChain
1110 Version int32
1111 AddressFamily int32
1112 MaxSockAddr int32
1113 MinSockAddr int32
1114 SocketType int32
1115 Protocol int32
1116 ProtocolMaxOffset int32
1117 NetworkByteOrder int32
1118 SecurityScheme int32
1119 MessageSize uint32
1120 ProviderReserved uint32
1121 ProtocolName [WSAPROTOCOL_LEN + 1]uint16
1122 }
1123
1124 type WSAProtocolChain struct {
1125 ChainLen int32
1126 ChainEntries [MAX_PROTOCOL_CHAIN]uint32
1127 }
1128
1129 type TCPKeepalive struct {
1130 OnOff uint32
1131 Time uint32
1132 Interval uint32
1133 }
1134
1135 type symbolicLinkReparseBuffer struct {
1136 SubstituteNameOffset uint16
1137 SubstituteNameLength uint16
1138 PrintNameOffset uint16
1139 PrintNameLength uint16
1140 Flags uint32
1141 PathBuffer [1]uint16
1142 }
1143
1144 type mountPointReparseBuffer struct {
1145 SubstituteNameOffset uint16
1146 SubstituteNameLength uint16
1147 PrintNameOffset uint16
1148 PrintNameLength uint16
1149 PathBuffer [1]uint16
1150 }
1151
1152 type reparseDataBuffer struct {
1153 ReparseTag uint32
1154 ReparseDataLength uint16
1155 Reserved uint16
1156
1157
1158 reparseBuffer byte
1159 }
1160
1161 const (
1162 FSCTL_GET_REPARSE_POINT = 0x900A8
1163 MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024
1164 _IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003
1165 IO_REPARSE_TAG_SYMLINK = 0xA000000C
1166 SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1
1167 _SYMLINK_FLAG_RELATIVE = 1
1168 )
1169
1170 const UNIX_PATH_MAX = 108
1171
View as plain text