1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
14 // Invented values to support what package os expects.
30 // More invented values for signals
46 var signals = [...]string{
50 4: "illegal instruction",
51 5: "trace/breakpoint trap",
54 8: "floating point exception",
56 10: "user defined signal 1",
57 11: "segmentation fault",
58 12: "user defined signal 2",
65 FILE_LIST_DIRECTORY = 0x00000001
66 FILE_APPEND_DATA = 0x00000004
67 FILE_WRITE_ATTRIBUTES = 0x00000100
69 FILE_SHARE_READ = 0x00000001
70 FILE_SHARE_WRITE = 0x00000002
71 FILE_SHARE_DELETE = 0x00000004
73 FILE_ATTRIBUTE_READONLY = 0x00000001
74 FILE_ATTRIBUTE_HIDDEN = 0x00000002
75 FILE_ATTRIBUTE_SYSTEM = 0x00000004
76 FILE_ATTRIBUTE_DIRECTORY = 0x00000010
77 FILE_ATTRIBUTE_ARCHIVE = 0x00000020
78 FILE_ATTRIBUTE_DEVICE = 0x00000040
79 FILE_ATTRIBUTE_NORMAL = 0x00000080
80 FILE_ATTRIBUTE_TEMPORARY = 0x00000100
81 FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200
82 FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400
83 FILE_ATTRIBUTE_COMPRESSED = 0x00000800
84 FILE_ATTRIBUTE_OFFLINE = 0x00001000
85 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000
86 FILE_ATTRIBUTE_ENCRYPTED = 0x00004000
87 FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x00008000
88 FILE_ATTRIBUTE_VIRTUAL = 0x00010000
89 FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000
90 FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000
91 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000
93 INVALID_FILE_ATTRIBUTES = 0xffffffff
101 FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000
102 FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000
103 FILE_FLAG_OPEN_NO_RECALL = 0x00100000
104 FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
105 FILE_FLAG_SESSION_AWARE = 0x00800000
106 FILE_FLAG_POSIX_SEMANTICS = 0x01000000
107 FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
108 FILE_FLAG_DELETE_ON_CLOSE = 0x04000000
109 FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000
110 FILE_FLAG_RANDOM_ACCESS = 0x10000000
111 FILE_FLAG_NO_BUFFERING = 0x20000000
112 FILE_FLAG_OVERLAPPED = 0x40000000
113 FILE_FLAG_WRITE_THROUGH = 0x80000000
115 HANDLE_FLAG_INHERIT = 0x00000001
116 STARTF_USESTDHANDLES = 0x00000100
117 STARTF_USESHOWWINDOW = 0x00000001
118 DUPLICATE_CLOSE_SOURCE = 0x00000001
119 DUPLICATE_SAME_ACCESS = 0x00000002
121 STD_INPUT_HANDLE = -10 & (1<<32 - 1)
122 STD_OUTPUT_HANDLE = -11 & (1<<32 - 1)
123 STD_ERROR_HANDLE = -12 & (1<<32 - 1)
130 SUBLANG_ENGLISH_US = 0x01
132 FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
133 FORMAT_MESSAGE_IGNORE_INSERTS = 512
134 FORMAT_MESSAGE_FROM_STRING = 1024
135 FORMAT_MESSAGE_FROM_HMODULE = 2048
136 FORMAT_MESSAGE_FROM_SYSTEM = 4096
137 FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
138 FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
141 MAX_LONG_PATH = 32768
143 MAX_COMPUTERNAME_LENGTH = 15
145 TIME_ZONE_ID_UNKNOWN = 0
146 TIME_ZONE_ID_STANDARD = 1
148 TIME_ZONE_ID_DAYLIGHT = 2
150 INFINITE = 0xffffffff
152 WAIT_ABANDONED = 0x00000080
153 WAIT_OBJECT_0 = 0x00000000
154 WAIT_FAILED = 0xFFFFFFFF
156 // Access rights for process.
157 PROCESS_CREATE_PROCESS = 0x0080
158 PROCESS_CREATE_THREAD = 0x0002
159 PROCESS_DUP_HANDLE = 0x0040
160 PROCESS_QUERY_INFORMATION = 0x0400
161 PROCESS_QUERY_LIMITED_INFORMATION = 0x1000
162 PROCESS_SET_INFORMATION = 0x0200
163 PROCESS_SET_QUOTA = 0x0100
164 PROCESS_SUSPEND_RESUME = 0x0800
165 PROCESS_TERMINATE = 0x0001
166 PROCESS_VM_OPERATION = 0x0008
167 PROCESS_VM_READ = 0x0010
168 PROCESS_VM_WRITE = 0x0020
170 // Access rights for thread.
171 THREAD_DIRECT_IMPERSONATION = 0x0200
172 THREAD_GET_CONTEXT = 0x0008
173 THREAD_IMPERSONATE = 0x0100
174 THREAD_QUERY_INFORMATION = 0x0040
175 THREAD_QUERY_LIMITED_INFORMATION = 0x0800
176 THREAD_SET_CONTEXT = 0x0010
177 THREAD_SET_INFORMATION = 0x0020
178 THREAD_SET_LIMITED_INFORMATION = 0x0400
179 THREAD_SET_THREAD_TOKEN = 0x0080
180 THREAD_SUSPEND_RESUME = 0x0002
181 THREAD_TERMINATE = 0x0001
184 FILE_MAP_WRITE = 0x02
186 FILE_MAP_EXECUTE = 0x20
191 CTRL_LOGOFF_EVENT = 5
192 CTRL_SHUTDOWN_EVENT = 6
194 // Windows reserves errors >= 1<<29 for application use.
195 APPLICATION_ERROR = 1 << 29
199 // Process creation flags.
200 CREATE_BREAKAWAY_FROM_JOB = 0x01000000
201 CREATE_DEFAULT_ERROR_MODE = 0x04000000
202 CREATE_NEW_CONSOLE = 0x00000010
203 CREATE_NEW_PROCESS_GROUP = 0x00000200
204 CREATE_NO_WINDOW = 0x08000000
205 CREATE_PROTECTED_PROCESS = 0x00040000
206 CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000
207 CREATE_SEPARATE_WOW_VDM = 0x00000800
208 CREATE_SHARED_WOW_VDM = 0x00001000
209 CREATE_SUSPENDED = 0x00000004
210 CREATE_UNICODE_ENVIRONMENT = 0x00000400
211 DEBUG_ONLY_THIS_PROCESS = 0x00000002
212 DEBUG_PROCESS = 0x00000001
213 DETACHED_PROCESS = 0x00000008
214 EXTENDED_STARTUPINFO_PRESENT = 0x00080000
215 INHERIT_PARENT_AFFINITY = 0x00010000
219 // flags for CreateToolhelp32Snapshot
220 TH32CS_SNAPHEAPLIST = 0x01
221 TH32CS_SNAPPROCESS = 0x02
222 TH32CS_SNAPTHREAD = 0x04
223 TH32CS_SNAPMODULE = 0x08
224 TH32CS_SNAPMODULE32 = 0x10
225 TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD
226 TH32CS_INHERIT = 0x80000000
230 // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW
231 FILE_NOTIFY_CHANGE_FILE_NAME = 0x001
232 FILE_NOTIFY_CHANGE_DIR_NAME = 0x002
233 FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004
234 FILE_NOTIFY_CHANGE_SIZE = 0x008
235 FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010
236 FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020
237 FILE_NOTIFY_CHANGE_CREATION = 0x040
238 FILE_NOTIFY_CHANGE_SECURITY = 0x100
243 FILE_ACTION_ADDED = iota + 1
246 FILE_ACTION_RENAMED_OLD_NAME
247 FILE_ACTION_RENAMED_NEW_NAME
252 /* certenrolld_begin -- PROV_RSA_*/
259 PROV_RSA_SCHANNEL = 12
261 PROV_EC_ECDSA_SIG = 14
262 PROV_EC_ECNRA_SIG = 15
263 PROV_EC_ECDSA_FULL = 16
264 PROV_EC_ECNRA_FULL = 17
265 PROV_DH_SCHANNEL = 18
266 PROV_SPYRUS_LYNKS = 20
269 PROV_REPLACE_OWF = 23
272 /* dwFlags definitions for CryptAcquireContext */
273 CRYPT_VERIFYCONTEXT = 0xF0000000
274 CRYPT_NEWKEYSET = 0x00000008
275 CRYPT_DELETEKEYSET = 0x00000010
276 CRYPT_MACHINE_KEYSET = 0x00000020
277 CRYPT_SILENT = 0x00000040
278 CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
280 /* Flags for PFXImportCertStore */
281 CRYPT_EXPORTABLE = 0x00000001
282 CRYPT_USER_PROTECTED = 0x00000002
283 CRYPT_USER_KEYSET = 0x00001000
284 PKCS12_PREFER_CNG_KSP = 0x00000100
285 PKCS12_ALWAYS_CNG_KSP = 0x00000200
286 PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000
287 PKCS12_NO_PERSIST_KEY = 0x00008000
288 PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010
290 /* Default usage match type is AND with value zero */
291 USAGE_MATCH_TYPE_AND = 0
292 USAGE_MATCH_TYPE_OR = 1
294 /* msgAndCertEncodingType values for CertOpenStore function */
295 X509_ASN_ENCODING = 0x00000001
296 PKCS_7_ASN_ENCODING = 0x00010000
298 /* storeProvider values for CertOpenStore function */
299 CERT_STORE_PROV_MSG = 1
300 CERT_STORE_PROV_MEMORY = 2
301 CERT_STORE_PROV_FILE = 3
302 CERT_STORE_PROV_REG = 4
303 CERT_STORE_PROV_PKCS7 = 5
304 CERT_STORE_PROV_SERIALIZED = 6
305 CERT_STORE_PROV_FILENAME_A = 7
306 CERT_STORE_PROV_FILENAME_W = 8
307 CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W
308 CERT_STORE_PROV_SYSTEM_A = 9
309 CERT_STORE_PROV_SYSTEM_W = 10
310 CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W
311 CERT_STORE_PROV_COLLECTION = 11
312 CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12
313 CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13
314 CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W
315 CERT_STORE_PROV_PHYSICAL_W = 14
316 CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W
317 CERT_STORE_PROV_SMART_CARD_W = 15
318 CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W
319 CERT_STORE_PROV_LDAP_W = 16
320 CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W
321 CERT_STORE_PROV_PKCS12 = 17
323 /* store characteristics (low WORD of flag) for CertOpenStore function */
324 CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001
325 CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002
326 CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004
327 CERT_STORE_DELETE_FLAG = 0x00000010
328 CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020
329 CERT_STORE_SHARE_STORE_FLAG = 0x00000040
330 CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080
331 CERT_STORE_MANIFOLD_FLAG = 0x00000100
332 CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200
333 CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400
334 CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800
335 CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000
336 CERT_STORE_CREATE_NEW_FLAG = 0x00002000
337 CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000
338 CERT_STORE_READONLY_FLAG = 0x00008000
340 /* store locations (high WORD of flag) for CertOpenStore function */
341 CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000
342 CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000
343 CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000
344 CERT_SYSTEM_STORE_SERVICES = 0x00050000
345 CERT_SYSTEM_STORE_USERS = 0x00060000
346 CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000
347 CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000
348 CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000
349 CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000
350 CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000
352 /* Miscellaneous high-WORD flags for CertOpenStore function */
353 CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000
354 CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000
355 CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000
356 CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000
357 CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000
358 CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000
359 CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000
360 CERT_LDAP_STORE_SIGN_FLAG = 0x00010000
361 CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000
362 CERT_LDAP_STORE_OPENED_FLAG = 0x00040000
363 CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000
365 /* addDisposition values for CertAddCertificateContextToStore function */
366 CERT_STORE_ADD_NEW = 1
367 CERT_STORE_ADD_USE_EXISTING = 2
368 CERT_STORE_ADD_REPLACE_EXISTING = 3
369 CERT_STORE_ADD_ALWAYS = 4
370 CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5
371 CERT_STORE_ADD_NEWER = 6
372 CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7
374 /* ErrorStatus values for CertTrustStatus struct */
375 CERT_TRUST_NO_ERROR = 0x00000000
376 CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001
377 CERT_TRUST_IS_REVOKED = 0x00000004
378 CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008
379 CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010
380 CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020
381 CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040
382 CERT_TRUST_IS_CYCLIC = 0x00000080
383 CERT_TRUST_INVALID_EXTENSION = 0x00000100
384 CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200
385 CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400
386 CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800
387 CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000
388 CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000
389 CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000
390 CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000
391 CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000
392 CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000
393 CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000
394 CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000
395 CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000
396 CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000
397 CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000
398 CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000
399 CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000
401 /* InfoStatus values for CertTrustStatus struct */
402 CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001
403 CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002
404 CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004
405 CERT_TRUST_IS_SELF_SIGNED = 0x00000008
406 CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100
407 CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400
408 CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400
409 CERT_TRUST_IS_PEER_TRUSTED = 0x00000800
410 CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000
411 CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000
412 CERT_TRUST_IS_CA_TRUSTED = 0x00004000
413 CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000
415 /* policyOID values for CertVerifyCertificateChainPolicy function */
416 CERT_CHAIN_POLICY_BASE = 1
417 CERT_CHAIN_POLICY_AUTHENTICODE = 2
418 CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3
419 CERT_CHAIN_POLICY_SSL = 4
420 CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5
421 CERT_CHAIN_POLICY_NT_AUTH = 6
422 CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7
423 CERT_CHAIN_POLICY_EV = 8
424 CERT_CHAIN_POLICY_SSL_F12 = 9
426 /* Certificate Store close flags */
427 CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001
428 CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002
430 /* CryptQueryObject object type */
431 CERT_QUERY_OBJECT_FILE = 1
432 CERT_QUERY_OBJECT_BLOB = 2
434 /* CryptQueryObject content type flags */
435 CERT_QUERY_CONTENT_CERT = 1
436 CERT_QUERY_CONTENT_CTL = 2
437 CERT_QUERY_CONTENT_CRL = 3
438 CERT_QUERY_CONTENT_SERIALIZED_STORE = 4
439 CERT_QUERY_CONTENT_SERIALIZED_CERT = 5
440 CERT_QUERY_CONTENT_SERIALIZED_CTL = 6
441 CERT_QUERY_CONTENT_SERIALIZED_CRL = 7
442 CERT_QUERY_CONTENT_PKCS7_SIGNED = 8
443 CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9
444 CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10
445 CERT_QUERY_CONTENT_PKCS10 = 11
446 CERT_QUERY_CONTENT_PFX = 12
447 CERT_QUERY_CONTENT_CERT_PAIR = 13
448 CERT_QUERY_CONTENT_PFX_AND_LOAD = 14
449 CERT_QUERY_CONTENT_FLAG_CERT = (1 << CERT_QUERY_CONTENT_CERT)
450 CERT_QUERY_CONTENT_FLAG_CTL = (1 << CERT_QUERY_CONTENT_CTL)
451 CERT_QUERY_CONTENT_FLAG_CRL = (1 << CERT_QUERY_CONTENT_CRL)
452 CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)
453 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)
454 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)
455 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)
456 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)
457 CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)
458 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
459 CERT_QUERY_CONTENT_FLAG_PKCS10 = (1 << CERT_QUERY_CONTENT_PKCS10)
460 CERT_QUERY_CONTENT_FLAG_PFX = (1 << CERT_QUERY_CONTENT_PFX)
461 CERT_QUERY_CONTENT_FLAG_CERT_PAIR = (1 << CERT_QUERY_CONTENT_CERT_PAIR)
462 CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD)
463 CERT_QUERY_CONTENT_FLAG_ALL = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR)
464 CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)
466 /* CryptQueryObject format type flags */
467 CERT_QUERY_FORMAT_BINARY = 1
468 CERT_QUERY_FORMAT_BASE64_ENCODED = 2
469 CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3
470 CERT_QUERY_FORMAT_FLAG_BINARY = (1 << CERT_QUERY_FORMAT_BINARY)
471 CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)
472 CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)
473 CERT_QUERY_FORMAT_FLAG_ALL = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED)
475 /* CertGetNameString name types */
476 CERT_NAME_EMAIL_TYPE = 1
477 CERT_NAME_RDN_TYPE = 2
478 CERT_NAME_ATTR_TYPE = 3
479 CERT_NAME_SIMPLE_DISPLAY_TYPE = 4
480 CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5
481 CERT_NAME_DNS_TYPE = 6
482 CERT_NAME_URL_TYPE = 7
483 CERT_NAME_UPN_TYPE = 8
485 /* CertGetNameString flags */
486 CERT_NAME_ISSUER_FLAG = 0x1
487 CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x10000
488 CERT_NAME_SEARCH_ALL_NAMES_FLAG = 0x2
489 CERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000
491 /* AuthType values for SSLExtraCertChainPolicyPara struct */
495 /* Checks values for SSLExtraCertChainPolicyPara struct */
496 SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080
497 SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100
498 SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200
499 SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000
500 SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000
502 /* Flags for Crypt[Un]ProtectData */
503 CRYPTPROTECT_UI_FORBIDDEN = 0x1
504 CRYPTPROTECT_LOCAL_MACHINE = 0x4
505 CRYPTPROTECT_CRED_SYNC = 0x8
506 CRYPTPROTECT_AUDIT = 0x10
507 CRYPTPROTECT_NO_RECOVERY = 0x20
508 CRYPTPROTECT_VERIFY_PROTECTION = 0x40
509 CRYPTPROTECT_CRED_REGENERATE = 0x80
511 /* Flags for CryptProtectPromptStruct */
512 CRYPTPROTECT_PROMPT_ON_UNPROTECT = 1
513 CRYPTPROTECT_PROMPT_ON_PROTECT = 2
514 CRYPTPROTECT_PROMPT_RESERVED = 4
515 CRYPTPROTECT_PROMPT_STRONG = 8
516 CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16
520 // flags for SetErrorMode
521 SEM_FAILCRITICALERRORS = 0x0001
522 SEM_NOALIGNMENTFAULTEXCEPT = 0x0004
523 SEM_NOGPFAULTERRORBOX = 0x0002
524 SEM_NOOPENFILEERRORBOX = 0x8000
529 ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000
530 BELOW_NORMAL_PRIORITY_CLASS = 0x00004000
531 HIGH_PRIORITY_CLASS = 0x00000080
532 IDLE_PRIORITY_CLASS = 0x00000040
533 NORMAL_PRIORITY_CLASS = 0x00000020
534 PROCESS_MODE_BACKGROUND_BEGIN = 0x00100000
535 PROCESS_MODE_BACKGROUND_END = 0x00200000
536 REALTIME_PRIORITY_CLASS = 0x00000100
539 /* wintrust.h constants for WinVerifyTrustEx */
547 WTD_REVOKE_WHOLECHAIN = 1
550 WTD_CHOICE_CATALOG = 2
552 WTD_CHOICE_SIGNER = 4
555 WTD_STATEACTION_IGNORE = 0x00000000
556 WTD_STATEACTION_VERIFY = 0x00000010
557 WTD_STATEACTION_CLOSE = 0x00000002
558 WTD_STATEACTION_AUTO_CACHE = 0x00000003
559 WTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004
561 WTD_USE_IE4_TRUST_FLAG = 0x1
562 WTD_NO_IE4_CHAIN_FLAG = 0x2
563 WTD_NO_POLICY_USAGE_FLAG = 0x4
564 WTD_REVOCATION_CHECK_NONE = 0x10
565 WTD_REVOCATION_CHECK_END_CERT = 0x20
566 WTD_REVOCATION_CHECK_CHAIN = 0x40
567 WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80
568 WTD_SAFER_FLAG = 0x100
569 WTD_HASH_ONLY_FLAG = 0x200
570 WTD_USE_DEFAULT_OSVER_CHECK = 0x400
571 WTD_LIFETIME_SIGNING_FLAG = 0x800
572 WTD_CACHE_ONLY_URL_RETRIEVAL = 0x1000
573 WTD_DISABLE_MD2_MD4 = 0x2000
576 WTD_UICONTEXT_EXECUTE = 0
577 WTD_UICONTEXT_INSTALL = 1
581 OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00")
582 OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00")
583 OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00")
585 WINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{
589 Data4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee},
593 // Pointer represents a pointer to an arbitrary Windows type.
595 // Pointer-typed fields may point to one of many different types. It's
596 // up to the caller to provide a pointer to the appropriate type, cast
597 // to Pointer. The caller must obey the unsafe.Pointer rules while
599 type Pointer *struct{}
601 // Invented values to support what package os expects.
602 type Timeval struct {
607 func (tv *Timeval) Nanoseconds() int64 {
608 return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
611 func NsecToTimeval(nsec int64) (tv Timeval) {
612 tv.Sec = int32(nsec / 1e9)
613 tv.Usec = int32(nsec % 1e9 / 1e3)
617 type Overlapped struct {
625 type FileNotifyInformation struct {
626 NextEntryOffset uint32
628 FileNameLength uint32
632 type Filetime struct {
637 // Nanoseconds returns Filetime ft in nanoseconds
638 // since Epoch (00:00:00 UTC, January 1, 1970).
639 func (ft *Filetime) Nanoseconds() int64 {
640 // 100-nanosecond intervals since January 1, 1601
641 nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
642 // change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
643 nsec -= 116444736000000000
644 // convert into nanoseconds
649 func NsecToFiletime(nsec int64) (ft Filetime) {
650 // convert into 100-nanosecond
652 // change starting time to January 1, 1601
653 nsec += 116444736000000000
654 // split into high / low
655 ft.LowDateTime = uint32(nsec & 0xffffffff)
656 ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
660 type Win32finddata struct {
661 FileAttributes uint32
662 CreationTime Filetime
663 LastAccessTime Filetime
664 LastWriteTime Filetime
669 FileName [MAX_PATH - 1]uint16
670 AlternateFileName [13]uint16
673 // This is the actual system call structure.
674 // Win32finddata is what we committed to in Go 1.
675 type win32finddata1 struct {
676 FileAttributes uint32
677 CreationTime Filetime
678 LastAccessTime Filetime
679 LastWriteTime Filetime
684 FileName [MAX_PATH]uint16
685 AlternateFileName [14]uint16
688 func copyFindData(dst *Win32finddata, src *win32finddata1) {
689 dst.FileAttributes = src.FileAttributes
690 dst.CreationTime = src.CreationTime
691 dst.LastAccessTime = src.LastAccessTime
692 dst.LastWriteTime = src.LastWriteTime
693 dst.FileSizeHigh = src.FileSizeHigh
694 dst.FileSizeLow = src.FileSizeLow
695 dst.Reserved0 = src.Reserved0
696 dst.Reserved1 = src.Reserved1
698 // The src is 1 element bigger than dst, but it must be NUL.
699 copy(dst.FileName[:], src.FileName[:])
700 copy(dst.AlternateFileName[:], src.AlternateFileName[:])
703 type ByHandleFileInformation struct {
704 FileAttributes uint32
705 CreationTime Filetime
706 LastAccessTime Filetime
707 LastWriteTime Filetime
708 VolumeSerialNumber uint32
717 GetFileExInfoStandard = 0
718 GetFileExMaxInfoLevel = 1
721 type Win32FileAttributeData struct {
722 FileAttributes uint32
723 CreationTime Filetime
724 LastAccessTime Filetime
725 LastWriteTime Filetime
730 // ShowWindow constants
739 SW_SHOWNOACTIVATE = 4
742 SW_SHOWMINNOACTIVE = 7
746 SW_FORCEMINIMIZE = 11
749 type StartupInfo struct {
770 type ProcessInformation struct {
777 type ProcessEntry32 struct {
781 DefaultHeapID uintptr
784 ParentProcessID uint32
787 ExeFile [MAX_PATH]uint16
790 type ThreadEntry32 struct {
794 OwnerProcessID uint32
800 type Systemtime struct {
811 type Timezoneinformation struct {
813 StandardName [32]uint16
814 StandardDate Systemtime
816 DaylightName [32]uint16
817 DaylightDate Systemtime
857 SO_UPDATE_ACCEPT_CONTEXT = 0x700b
858 SO_UPDATE_CONNECT_CONTEXT = 0x7010
862 IOC_VENDOR = 0x18000000
863 IOC_INOUT = IOC_IN | IOC_OUT
865 SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6
866 SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4
867 SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12
869 // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460
873 IP_MULTICAST_IF = 0x9
874 IP_MULTICAST_TTL = 0xa
875 IP_MULTICAST_LOOP = 0xb
876 IP_ADD_MEMBERSHIP = 0xc
877 IP_DROP_MEMBERSHIP = 0xd
880 IPV6_UNICAST_HOPS = 0x4
881 IPV6_MULTICAST_IF = 0x9
882 IPV6_MULTICAST_HOPS = 0xa
883 IPV6_MULTICAST_LOOP = 0xb
884 IPV6_JOIN_GROUP = 0xc
885 IPV6_LEAVE_GROUP = 0xd
897 SOMAXCONN = 0x7fffffff
905 WSADESCRIPTION_LEN = 256
906 WSASYS_STATUS_LEN = 128
915 Name *syscall.RawSockaddrAny
923 // Invented values to support what package os expects.
943 FILE_TYPE_CHAR = 0x0002
944 FILE_TYPE_DISK = 0x0001
945 FILE_TYPE_PIPE = 0x0003
946 FILE_TYPE_REMOTE = 0x8000
947 FILE_TYPE_UNKNOWN = 0x0000
950 type Hostent struct {
958 type Protoent struct {
969 DNS_TYPE_CNAME = 0x0005
970 DNS_TYPE_SOA = 0x0006
974 DNS_TYPE_NULL = 0x000a
975 DNS_TYPE_WKS = 0x000b
976 DNS_TYPE_PTR = 0x000c
977 DNS_TYPE_HINFO = 0x000d
978 DNS_TYPE_MINFO = 0x000e
980 DNS_TYPE_TEXT = 0x0010
982 DNS_TYPE_AFSDB = 0x0012
983 DNS_TYPE_X25 = 0x0013
984 DNS_TYPE_ISDN = 0x0014
986 DNS_TYPE_NSAP = 0x0016
987 DNS_TYPE_NSAPPTR = 0x0017
988 DNS_TYPE_SIG = 0x0018
989 DNS_TYPE_KEY = 0x0019
991 DNS_TYPE_GPOS = 0x001b
992 DNS_TYPE_AAAA = 0x001c
993 DNS_TYPE_LOC = 0x001d
994 DNS_TYPE_NXT = 0x001e
995 DNS_TYPE_EID = 0x001f
996 DNS_TYPE_NIMLOC = 0x0020
997 DNS_TYPE_SRV = 0x0021
998 DNS_TYPE_ATMA = 0x0022
999 DNS_TYPE_NAPTR = 0x0023
1000 DNS_TYPE_KX = 0x0024
1001 DNS_TYPE_CERT = 0x0025
1002 DNS_TYPE_A6 = 0x0026
1003 DNS_TYPE_DNAME = 0x0027
1004 DNS_TYPE_SINK = 0x0028
1005 DNS_TYPE_OPT = 0x0029
1006 DNS_TYPE_DS = 0x002B
1007 DNS_TYPE_RRSIG = 0x002E
1008 DNS_TYPE_NSEC = 0x002F
1009 DNS_TYPE_DNSKEY = 0x0030
1010 DNS_TYPE_DHCID = 0x0031
1011 DNS_TYPE_UINFO = 0x0064
1012 DNS_TYPE_UID = 0x0065
1013 DNS_TYPE_GID = 0x0066
1014 DNS_TYPE_UNSPEC = 0x0067
1015 DNS_TYPE_ADDRS = 0x00f8
1016 DNS_TYPE_TKEY = 0x00f9
1017 DNS_TYPE_TSIG = 0x00fa
1018 DNS_TYPE_IXFR = 0x00fb
1019 DNS_TYPE_AXFR = 0x00fc
1020 DNS_TYPE_MAILB = 0x00fd
1021 DNS_TYPE_MAILA = 0x00fe
1022 DNS_TYPE_ALL = 0x00ff
1023 DNS_TYPE_ANY = 0x00ff
1024 DNS_TYPE_WINS = 0xff01
1025 DNS_TYPE_WINSR = 0xff02
1026 DNS_TYPE_NBSTAT = 0xff01
1030 // flags inside DNSRecord.Dw
1031 DnsSectionQuestion = 0x0000
1032 DnsSectionAnswer = 0x0001
1033 DnsSectionAuthority = 0x0002
1034 DnsSectionAdditional = 0x0003
1037 type DNSSRVData struct {
1045 type DNSPTRData struct {
1049 type DNSMXData struct {
1050 NameExchange *uint16
1055 type DNSTXTData struct {
1057 StringArray [1]*uint16
1060 type DNSRecord struct {
1075 TF_USE_DEFAULT_WORKER = 0
1076 TF_USE_SYSTEM_THREAD = 16
1077 TF_USE_KERNEL_APC = 32
1080 type TransmitFileBuffers struct {
1091 IFF_POINTTOPOINT = 8
1095 const SIO_GET_INTERFACE_LIST = 0x4004747F
1097 // TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.
1098 // will be fixed to change variable type as suitable.
1100 type SockaddrGen [24]byte
1102 type InterfaceInfo struct {
1105 BroadcastAddress SockaddrGen
1109 type IpAddressString struct {
1113 type IpMaskString IpAddressString
1115 type IpAddrString struct {
1117 IpAddress IpAddressString
1122 const MAX_ADAPTER_NAME_LENGTH = 256
1123 const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
1124 const MAX_ADAPTER_ADDRESS_LENGTH = 8
1126 type IpAdapterInfo struct {
1129 AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
1130 Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
1131 AddressLength uint32
1132 Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
1136 CurrentIpAddress *IpAddrString
1137 IpAddressList IpAddrString
1138 GatewayList IpAddrString
1139 DhcpServer IpAddrString
1141 PrimaryWinsServer IpAddrString
1142 SecondaryWinsServer IpAddrString
1147 const MAXLEN_PHYSADDR = 8
1148 const MAX_INTERFACE_NAME_LEN = 256
1149 const MAXLEN_IFDESCR = 256
1151 type MibIfRow struct {
1152 Name [MAX_INTERFACE_NAME_LEN]uint16
1158 PhysAddr [MAXLEN_PHYSADDR]byte
1167 InUnknownProtos uint32
1170 OutNUcastPkts uint32
1175 Descr [MAXLEN_IFDESCR]byte
1178 type CertInfo struct {
1180 SerialNumber CryptIntegerBlob
1181 SignatureAlgorithm CryptAlgorithmIdentifier
1185 Subject CertNameBlob
1186 SubjectPublicKeyInfo CertPublicKeyInfo
1187 IssuerUniqueId CryptBitBlob
1188 SubjectUniqueId CryptBitBlob
1189 CountExtensions uint32
1190 Extensions *CertExtension
1193 type CertExtension struct {
1196 Value CryptObjidBlob
1199 type CryptAlgorithmIdentifier struct {
1201 Parameters CryptObjidBlob
1204 type CertPublicKeyInfo struct {
1205 Algorithm CryptAlgorithmIdentifier
1206 PublicKey CryptBitBlob
1209 type DataBlob struct {
1213 type CryptIntegerBlob DataBlob
1214 type CryptUintBlob DataBlob
1215 type CryptObjidBlob DataBlob
1216 type CertNameBlob DataBlob
1217 type CertRdnValueBlob DataBlob
1218 type CertBlob DataBlob
1219 type CrlBlob DataBlob
1220 type CryptDataBlob DataBlob
1221 type CryptHashBlob DataBlob
1222 type CryptDigestBlob DataBlob
1223 type CryptDerBlob DataBlob
1224 type CryptAttrBlob DataBlob
1226 type CryptBitBlob struct {
1232 type CertContext struct {
1240 type CertChainContext struct {
1242 TrustStatus CertTrustStatus
1244 Chains **CertSimpleChain
1245 LowerQualityChainCount uint32
1246 LowerQualityChains **CertChainContext
1247 HasRevocationFreshnessTime uint32
1248 RevocationFreshnessTime uint32
1251 type CertTrustListInfo struct {
1255 type CertSimpleChain struct {
1257 TrustStatus CertTrustStatus
1259 Elements **CertChainElement
1260 TrustListInfo *CertTrustListInfo
1261 HasRevocationFreshnessTime uint32
1262 RevocationFreshnessTime uint32
1265 type CertChainElement struct {
1267 CertContext *CertContext
1268 TrustStatus CertTrustStatus
1269 RevocationInfo *CertRevocationInfo
1270 IssuanceUsage *CertEnhKeyUsage
1271 ApplicationUsage *CertEnhKeyUsage
1272 ExtendedErrorInfo *uint16
1275 type CertRevocationCrlInfo struct {
1279 type CertRevocationInfo struct {
1281 RevocationResult uint32
1283 OidSpecificInfo Pointer
1284 HasFreshnessTime uint32
1285 FreshnessTime uint32
1286 CrlInfo *CertRevocationCrlInfo
1289 type CertTrustStatus struct {
1294 type CertUsageMatch struct {
1296 Usage CertEnhKeyUsage
1299 type CertEnhKeyUsage struct {
1301 UsageIdentifiers **byte
1304 type CertChainPara struct {
1306 RequestedUsage CertUsageMatch
1307 RequstedIssuancePolicy CertUsageMatch
1308 URLRetrievalTimeout uint32
1309 CheckRevocationFreshnessTime uint32
1310 RevocationFreshnessTime uint32
1311 CacheResync *Filetime
1314 type CertChainPolicyPara struct {
1317 ExtraPolicyPara Pointer
1320 type SSLExtraCertChainPolicyPara struct {
1327 type CertChainPolicyStatus struct {
1332 ExtraPolicyStatus Pointer
1335 type CertPolicyInfo struct {
1337 CountQualifiers uint32
1338 Qualifiers *CertPolicyQualifierInfo
1341 type CertPoliciesInfo struct {
1343 PolicyInfos *CertPolicyInfo
1346 type CertPolicyQualifierInfo struct {
1350 type CertStrongSignPara struct {
1353 InfoOrSerializedInfoOrOID unsafe.Pointer
1356 type CryptProtectPromptStruct struct {
1363 type WinTrustData struct {
1365 PolicyCallbackData uintptr
1366 SIPClientData uintptr
1368 RevocationChecks uint32
1370 FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer
1373 URLReference *uint16
1376 SignatureSettings *WinTrustSignatureSettings
1379 type WinTrustFileInfo struct {
1386 type WinTrustSignatureSettings struct {
1390 SecondarySigs uint32
1391 VerifiedSigIndex uint32
1392 CryptoPolicy *CertStrongSignPara
1397 HKEY_CLASSES_ROOT = 0x80000000 + iota
1401 HKEY_PERFORMANCE_DATA
1407 KEY_CREATE_SUB_KEY = 4
1408 KEY_ENUMERATE_SUB_KEYS = 8
1410 KEY_CREATE_LINK = 32
1412 KEY_EXECUTE = 0x20019
1414 KEY_WOW64_64KEY = 0x0100
1415 KEY_WOW64_32KEY = 0x0200
1416 KEY_ALL_ACCESS = 0xf003f
1425 REG_DWORD_LITTLE_ENDIAN
1426 REG_DWORD_BIG_ENDIAN
1430 REG_FULL_RESOURCE_DESCRIPTOR
1431 REG_RESOURCE_REQUIREMENTS_LIST
1432 REG_QWORD_LITTLE_ENDIAN
1433 REG_DWORD = REG_DWORD_LITTLE_ENDIAN
1434 REG_QWORD = REG_QWORD_LITTLE_ENDIAN
1438 EVENT_MODIFY_STATE = 0x0002
1439 EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3
1441 MUTANT_QUERY_STATE = 0x0001
1442 MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE
1444 SEMAPHORE_MODIFY_STATE = 0x0002
1445 SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3
1447 TIMER_QUERY_STATE = 0x0001
1448 TIMER_MODIFY_STATE = 0x0002
1449 TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE
1451 MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE
1452 MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS
1454 CREATE_EVENT_MANUAL_RESET = 0x1
1455 CREATE_EVENT_INITIAL_SET = 0x2
1456 CREATE_MUTEX_INITIAL_OWNER = 0x1
1459 type AddrinfoW struct {
1483 var WSAID_CONNECTEX = GUID{
1487 [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},
1490 var WSAID_WSASENDMSG = GUID{
1494 [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},
1497 var WSAID_WSARECVMSG = GUID{
1501 [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},
1505 FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1
1506 FILE_SKIP_SET_EVENT_ON_HANDLE = 2
1510 WSAPROTOCOL_LEN = 255
1511 MAX_PROTOCOL_CHAIN = 7
1513 LAYERED_PROTOCOL = 0
1515 XP1_CONNECTIONLESS = 0x00000001
1516 XP1_GUARANTEED_DELIVERY = 0x00000002
1517 XP1_GUARANTEED_ORDER = 0x00000004
1518 XP1_MESSAGE_ORIENTED = 0x00000008
1519 XP1_PSEUDO_STREAM = 0x00000010
1520 XP1_GRACEFUL_CLOSE = 0x00000020
1521 XP1_EXPEDITED_DATA = 0x00000040
1522 XP1_CONNECT_DATA = 0x00000080
1523 XP1_DISCONNECT_DATA = 0x00000100
1524 XP1_SUPPORT_BROADCAST = 0x00000200
1525 XP1_SUPPORT_MULTIPOINT = 0x00000400
1526 XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800
1527 XP1_MULTIPOINT_DATA_PLANE = 0x00001000
1528 XP1_QOS_SUPPORTED = 0x00002000
1529 XP1_UNI_SEND = 0x00008000
1530 XP1_UNI_RECV = 0x00010000
1531 XP1_IFS_HANDLES = 0x00020000
1532 XP1_PARTIAL_MESSAGE = 0x00040000
1533 XP1_SAN_SUPPORT_SDP = 0x00080000
1535 PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001
1536 PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002
1537 PFL_HIDDEN = 0x00000004
1538 PFL_MATCHES_PROTOCOL_ZERO = 0x00000008
1539 PFL_NETWORKDIRECT_PROVIDER = 0x00000010
1542 type WSAProtocolInfo struct {
1543 ServiceFlags1 uint32
1544 ServiceFlags2 uint32
1545 ServiceFlags3 uint32
1546 ServiceFlags4 uint32
1547 ProviderFlags uint32
1549 CatalogEntryId uint32
1550 ProtocolChain WSAProtocolChain
1557 ProtocolMaxOffset int32
1558 NetworkByteOrder int32
1559 SecurityScheme int32
1561 ProviderReserved uint32
1562 ProtocolName [WSAPROTOCOL_LEN + 1]uint16
1565 type WSAProtocolChain struct {
1567 ChainEntries [MAX_PROTOCOL_CHAIN]uint32
1570 type TCPKeepalive struct {
1576 type symbolicLinkReparseBuffer struct {
1577 SubstituteNameOffset uint16
1578 SubstituteNameLength uint16
1579 PrintNameOffset uint16
1580 PrintNameLength uint16
1582 PathBuffer [1]uint16
1585 type mountPointReparseBuffer struct {
1586 SubstituteNameOffset uint16
1587 SubstituteNameLength uint16
1588 PrintNameOffset uint16
1589 PrintNameLength uint16
1590 PathBuffer [1]uint16
1593 type reparseDataBuffer struct {
1595 ReparseDataLength uint16
1598 // GenericReparseBuffer
1603 FSCTL_GET_REPARSE_POINT = 0x900A8
1604 MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024
1605 IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003
1606 IO_REPARSE_TAG_SYMLINK = 0xA000000C
1607 SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1
1611 ComputerNameNetBIOS = 0
1612 ComputerNameDnsHostname = 1
1613 ComputerNameDnsDomain = 2
1614 ComputerNameDnsFullyQualified = 3
1615 ComputerNamePhysicalNetBIOS = 4
1616 ComputerNamePhysicalDnsHostname = 5
1617 ComputerNamePhysicalDnsDomain = 6
1618 ComputerNamePhysicalDnsFullyQualified = 7
1625 MB_OKCANCEL = 0x00000001
1626 MB_ABORTRETRYIGNORE = 0x00000002
1627 MB_YESNOCANCEL = 0x00000003
1628 MB_YESNO = 0x00000004
1629 MB_RETRYCANCEL = 0x00000005
1630 MB_CANCELTRYCONTINUE = 0x00000006
1631 MB_ICONHAND = 0x00000010
1632 MB_ICONQUESTION = 0x00000020
1633 MB_ICONEXCLAMATION = 0x00000030
1634 MB_ICONASTERISK = 0x00000040
1635 MB_USERICON = 0x00000080
1636 MB_ICONWARNING = MB_ICONEXCLAMATION
1637 MB_ICONERROR = MB_ICONHAND
1638 MB_ICONINFORMATION = MB_ICONASTERISK
1639 MB_ICONSTOP = MB_ICONHAND
1640 MB_DEFBUTTON1 = 0x00000000
1641 MB_DEFBUTTON2 = 0x00000100
1642 MB_DEFBUTTON3 = 0x00000200
1643 MB_DEFBUTTON4 = 0x00000300
1644 MB_APPLMODAL = 0x00000000
1645 MB_SYSTEMMODAL = 0x00001000
1646 MB_TASKMODAL = 0x00002000
1647 MB_HELP = 0x00004000
1648 MB_NOFOCUS = 0x00008000
1649 MB_SETFOREGROUND = 0x00010000
1650 MB_DEFAULT_DESKTOP_ONLY = 0x00020000
1651 MB_TOPMOST = 0x00040000
1652 MB_RIGHT = 0x00080000
1653 MB_RTLREADING = 0x00100000
1654 MB_SERVICE_NOTIFICATION = 0x00200000
1658 MOVEFILE_REPLACE_EXISTING = 0x1
1659 MOVEFILE_COPY_ALLOWED = 0x2
1660 MOVEFILE_DELAY_UNTIL_REBOOT = 0x4
1661 MOVEFILE_WRITE_THROUGH = 0x8
1662 MOVEFILE_CREATE_HARDLINK = 0x10
1663 MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20
1666 const GAA_FLAG_INCLUDE_PREFIX = 0x00000010
1670 IF_TYPE_ETHERNET_CSMACD = 6
1671 IF_TYPE_ISO88025_TOKENRING = 9
1673 IF_TYPE_SOFTWARE_LOOPBACK = 24
1675 IF_TYPE_IEEE80211 = 71
1676 IF_TYPE_TUNNEL = 131
1677 IF_TYPE_IEEE1394 = 144
1680 type SocketAddress struct {
1681 Sockaddr *syscall.RawSockaddrAny
1682 SockaddrLength int32
1685 // IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither.
1686 func (addr *SocketAddress) IP() net.IP {
1687 if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET {
1688 return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:]
1689 } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 {
1690 return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:]
1695 type IpAdapterUnicastAddress struct {
1698 Next *IpAdapterUnicastAddress
1699 Address SocketAddress
1703 ValidLifetime uint32
1704 PreferredLifetime uint32
1705 LeaseLifetime uint32
1706 OnLinkPrefixLength uint8
1709 type IpAdapterAnycastAddress struct {
1712 Next *IpAdapterAnycastAddress
1713 Address SocketAddress
1716 type IpAdapterMulticastAddress struct {
1719 Next *IpAdapterMulticastAddress
1720 Address SocketAddress
1723 type IpAdapterDnsServerAdapter struct {
1726 Next *IpAdapterDnsServerAdapter
1727 Address SocketAddress
1730 type IpAdapterPrefix struct {
1733 Next *IpAdapterPrefix
1734 Address SocketAddress
1738 type IpAdapterAddresses struct {
1741 Next *IpAdapterAddresses
1743 FirstUnicastAddress *IpAdapterUnicastAddress
1744 FirstAnycastAddress *IpAdapterAnycastAddress
1745 FirstMulticastAddress *IpAdapterMulticastAddress
1746 FirstDnsServerAddress *IpAdapterDnsServerAdapter
1749 FriendlyName *uint16
1750 PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte
1751 PhysicalAddressLength uint32
1757 ZoneIndices [16]uint32
1758 FirstPrefix *IpAdapterPrefix
1759 /* more fields might be present here. */
1764 IfOperStatusDown = 2
1765 IfOperStatusTesting = 3
1766 IfOperStatusUnknown = 4
1767 IfOperStatusDormant = 5
1768 IfOperStatusNotPresent = 6
1769 IfOperStatusLowerLayerDown = 7
1772 // Console related constants used for the mode parameter to SetConsoleMode. See
1773 // https://docs.microsoft.com/en-us/windows/console/setconsolemode for details.
1776 ENABLE_PROCESSED_INPUT = 0x1
1777 ENABLE_LINE_INPUT = 0x2
1778 ENABLE_ECHO_INPUT = 0x4
1779 ENABLE_WINDOW_INPUT = 0x8
1780 ENABLE_MOUSE_INPUT = 0x10
1781 ENABLE_INSERT_MODE = 0x20
1782 ENABLE_QUICK_EDIT_MODE = 0x40
1783 ENABLE_EXTENDED_FLAGS = 0x80
1784 ENABLE_AUTO_POSITION = 0x100
1785 ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200
1787 ENABLE_PROCESSED_OUTPUT = 0x1
1788 ENABLE_WRAP_AT_EOL_OUTPUT = 0x2
1789 ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4
1790 DISABLE_NEWLINE_AUTO_RETURN = 0x8
1791 ENABLE_LVB_GRID_WORLDWIDE = 0x10
1799 type SmallRect struct {
1806 // Used with GetConsoleScreenBuffer to retrieve information about a console
1807 // screen buffer. See
1808 // https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str
1811 type ConsoleScreenBufferInfo struct {
1813 CursorPosition Coord
1816 MaximumWindowSize Coord
1819 const UNIX_PATH_MAX = 108 // defined in afunix.h
1822 // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags
1823 JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008
1824 JOB_OBJECT_LIMIT_AFFINITY = 0x00000010
1825 JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800
1826 JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400
1827 JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200
1828 JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004
1829 JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000
1830 JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040
1831 JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020
1832 JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100
1833 JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002
1834 JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080
1835 JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000
1836 JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000
1837 JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001
1840 type IO_COUNTERS struct {
1841 ReadOperationCount uint64
1842 WriteOperationCount uint64
1843 OtherOperationCount uint64
1844 ReadTransferCount uint64
1845 WriteTransferCount uint64
1846 OtherTransferCount uint64
1849 type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {
1850 BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION
1852 ProcessMemoryLimit uintptr
1853 JobMemoryLimit uintptr
1854 PeakProcessMemoryUsed uintptr
1855 PeakJobMemoryUsed uintptr
1859 // UIRestrictionsClass
1860 JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040
1861 JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010
1862 JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080
1863 JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020
1864 JOB_OBJECT_UILIMIT_HANDLES = 0x00000001
1865 JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002
1866 JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008
1867 JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004
1870 type JOBOBJECT_BASIC_UI_RESTRICTIONS struct {
1871 UIRestrictionsClass uint32
1875 // JobObjectInformationClass
1876 JobObjectAssociateCompletionPortInformation = 7
1877 JobObjectBasicLimitInformation = 2
1878 JobObjectBasicUIRestrictions = 4
1879 JobObjectCpuRateControlInformation = 15
1880 JobObjectEndOfJobTimeInformation = 6
1881 JobObjectExtendedLimitInformation = 9
1882 JobObjectGroupInformation = 11
1883 JobObjectGroupInformationEx = 14
1884 JobObjectLimitViolationInformation2 = 35
1885 JobObjectNetRateControlInformation = 32
1886 JobObjectNotificationLimitInformation = 12
1887 JobObjectNotificationLimitInformation2 = 34
1888 JobObjectSecurityLimitInformation = 5
1892 KF_FLAG_DEFAULT = 0x00000000
1893 KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000
1894 KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000
1895 KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000
1896 KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000
1897 KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000
1898 KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000
1899 KF_FLAG_CREATE = 0x00008000
1900 KF_FLAG_DONT_VERIFY = 0x00004000
1901 KF_FLAG_DONT_UNEXPAND = 0x00002000
1902 KF_FLAG_NO_ALIAS = 0x00001000
1903 KF_FLAG_INIT = 0x00000800
1904 KF_FLAG_DEFAULT_PATH = 0x00000400
1905 KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200
1906 KF_FLAG_SIMPLE_IDLIST = 0x00000100
1907 KF_FLAG_ALIAS_ONLY = 0x80000000
1910 type OsVersionInfoEx struct {
1911 osVersionInfoSize uint32
1916 CsdVersion [128]uint16
1917 ServicePackMajor uint16
1918 ServicePackMinor uint16
1925 EWX_LOGOFF = 0x00000000
1926 EWX_SHUTDOWN = 0x00000001
1927 EWX_REBOOT = 0x00000002
1928 EWX_FORCE = 0x00000004
1929 EWX_POWEROFF = 0x00000008
1930 EWX_FORCEIFHUNG = 0x00000010
1931 EWX_QUICKRESOLVE = 0x00000020
1932 EWX_RESTARTAPPS = 0x00000040
1933 EWX_HYBRID_SHUTDOWN = 0x00400000
1934 EWX_BOOTOPTIONS = 0x01000000
1936 SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000
1937 SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000
1938 SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000
1939 SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000
1940 SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000
1941 SHTDN_REASON_FLAG_PLANNED = 0x80000000
1942 SHTDN_REASON_MAJOR_OTHER = 0x00000000
1943 SHTDN_REASON_MAJOR_NONE = 0x00000000
1944 SHTDN_REASON_MAJOR_HARDWARE = 0x00010000
1945 SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000
1946 SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000
1947 SHTDN_REASON_MAJOR_APPLICATION = 0x00040000
1948 SHTDN_REASON_MAJOR_SYSTEM = 0x00050000
1949 SHTDN_REASON_MAJOR_POWER = 0x00060000
1950 SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000
1951 SHTDN_REASON_MINOR_OTHER = 0x00000000
1952 SHTDN_REASON_MINOR_NONE = 0x000000ff
1953 SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001
1954 SHTDN_REASON_MINOR_INSTALLATION = 0x00000002
1955 SHTDN_REASON_MINOR_UPGRADE = 0x00000003
1956 SHTDN_REASON_MINOR_RECONFIG = 0x00000004
1957 SHTDN_REASON_MINOR_HUNG = 0x00000005
1958 SHTDN_REASON_MINOR_UNSTABLE = 0x00000006
1959 SHTDN_REASON_MINOR_DISK = 0x00000007
1960 SHTDN_REASON_MINOR_PROCESSOR = 0x00000008
1961 SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009
1962 SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a
1963 SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b
1964 SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c
1965 SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d
1966 SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e
1967 SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F
1968 SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010
1969 SHTDN_REASON_MINOR_HOTFIX = 0x00000011
1970 SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012
1971 SHTDN_REASON_MINOR_SECURITY = 0x00000013
1972 SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014
1973 SHTDN_REASON_MINOR_WMI = 0x00000015
1974 SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016
1975 SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017
1976 SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018
1977 SHTDN_REASON_MINOR_MMC = 0x00000019
1978 SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a
1979 SHTDN_REASON_MINOR_TERMSRV = 0x00000020
1980 SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021
1981 SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022
1982 SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE
1983 SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED
1984 SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff
1986 SHUTDOWN_NORETRY = 0x1
1989 // Flags used for GetModuleHandleEx
1991 GET_MODULE_HANDLE_EX_FLAG_PIN = 1
1992 GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2
1993 GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4
1996 // MUI function flag values
1998 MUI_LANGUAGE_ID = 0x4
1999 MUI_LANGUAGE_NAME = 0x8
2000 MUI_MERGE_SYSTEM_FALLBACK = 0x10
2001 MUI_MERGE_USER_FALLBACK = 0x20
2002 MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK
2003 MUI_THREAD_LANGUAGES = 0x40
2004 MUI_CONSOLE_FILTER = 0x100
2005 MUI_COMPLEX_SCRIPT_FILTER = 0x200
2006 MUI_RESET_FILTERS = 0x001
2007 MUI_USER_PREFERRED_UI_LANGUAGES = 0x10
2008 MUI_USE_INSTALLED_LANGUAGES = 0x20
2009 MUI_USE_SEARCH_ALL_LANGUAGES = 0x40
2010 MUI_LANG_NEUTRAL_PE_FILE = 0x100
2011 MUI_NON_LANG_NEUTRAL_FILE = 0x200
2012 MUI_MACHINE_LANGUAGE_SETTINGS = 0x400
2013 MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001
2014 MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002
2015 MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004
2016 MUI_QUERY_TYPE = 0x001
2017 MUI_QUERY_CHECKSUM = 0x002
2018 MUI_QUERY_LANGUAGE_NAME = 0x004
2019 MUI_QUERY_RESOURCE_TYPES = 0x008
2020 MUI_FILEINFO_VERSION = 0x001
2022 MUI_FULL_LANGUAGE = 0x01
2023 MUI_PARTIAL_LANGUAGE = 0x02
2024 MUI_LIP_LANGUAGE = 0x04
2025 MUI_LANGUAGE_INSTALLED = 0x20
2026 MUI_LANGUAGE_LICENSED = 0x40
2029 // FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx
2032 FileStandardInfo = 1
2035 FileDispositionInfo = 4
2036 FileAllocationInfo = 5
2037 FileEndOfFileInfo = 6
2039 FileCompressionInfo = 8
2040 FileAttributeTagInfo = 9
2041 FileIdBothDirectoryInfo = 10
2042 FileIdBothDirectoryRestartInfo = 11
2043 FileIoPriorityHintInfo = 12
2044 FileRemoteProtocolInfo = 13
2045 FileFullDirectoryInfo = 14
2046 FileFullDirectoryRestartInfo = 15
2047 FileStorageInfo = 16
2048 FileAlignmentInfo = 17
2050 FileIdExtdDirectoryInfo = 19
2051 FileIdExtdDirectoryRestartInfo = 20
2052 FileDispositionInfoEx = 21
2053 FileRenameInfoEx = 22
2054 FileCaseSensitiveInfo = 23
2055 FileNormalizedNameInfo = 24
2058 // LoadLibrary flags for determining from where to search for a DLL
2060 DONT_RESOLVE_DLL_REFERENCES = 0x1
2061 LOAD_LIBRARY_AS_DATAFILE = 0x2
2062 LOAD_WITH_ALTERED_SEARCH_PATH = 0x8
2063 LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10
2064 LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20
2065 LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40
2066 LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80
2067 LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100
2068 LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200
2069 LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400
2070 LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800
2071 LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000
2072 LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000
2073 LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000
2074 LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000
2077 // RegNotifyChangeKeyValue notifyFilter flags.
2079 // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted.
2080 REG_NOTIFY_CHANGE_NAME = 0x00000001
2082 // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information.
2083 REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002
2085 // REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value.
2086 REG_NOTIFY_CHANGE_LAST_SET = 0x00000004
2088 // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key.
2089 REG_NOTIFY_CHANGE_SECURITY = 0x00000008
2091 // REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later.
2092 REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000