123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775 |
- // Copyright 2011 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package windows
- import (
- "net"
- "syscall"
- "unsafe"
- )
- // NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and
- // other native functions.
- type NTStatus uint32
- const (
- // Invented values to support what package os expects.
- O_RDONLY = 0x00000
- O_WRONLY = 0x00001
- O_RDWR = 0x00002
- O_CREAT = 0x00040
- O_EXCL = 0x00080
- O_NOCTTY = 0x00100
- O_TRUNC = 0x00200
- O_NONBLOCK = 0x00800
- O_APPEND = 0x00400
- O_SYNC = 0x01000
- O_ASYNC = 0x02000
- O_CLOEXEC = 0x80000
- )
- const (
- // More invented values for signals
- SIGHUP = Signal(0x1)
- SIGINT = Signal(0x2)
- SIGQUIT = Signal(0x3)
- SIGILL = Signal(0x4)
- SIGTRAP = Signal(0x5)
- SIGABRT = Signal(0x6)
- SIGBUS = Signal(0x7)
- SIGFPE = Signal(0x8)
- SIGKILL = Signal(0x9)
- SIGSEGV = Signal(0xb)
- SIGPIPE = Signal(0xd)
- SIGALRM = Signal(0xe)
- SIGTERM = Signal(0xf)
- )
- var signals = [...]string{
- 1: "hangup",
- 2: "interrupt",
- 3: "quit",
- 4: "illegal instruction",
- 5: "trace/breakpoint trap",
- 6: "aborted",
- 7: "bus error",
- 8: "floating point exception",
- 9: "killed",
- 10: "user defined signal 1",
- 11: "segmentation fault",
- 12: "user defined signal 2",
- 13: "broken pipe",
- 14: "alarm clock",
- 15: "terminated",
- }
- const (
- FILE_LIST_DIRECTORY = 0x00000001
- FILE_APPEND_DATA = 0x00000004
- FILE_WRITE_ATTRIBUTES = 0x00000100
- 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_INTEGRITY_STREAM = 0x00008000
- FILE_ATTRIBUTE_VIRTUAL = 0x00010000
- FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x00020000
- FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x00040000
- FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000
- INVALID_FILE_ATTRIBUTES = 0xffffffff
- CREATE_NEW = 1
- CREATE_ALWAYS = 2
- OPEN_EXISTING = 3
- OPEN_ALWAYS = 4
- TRUNCATE_EXISTING = 5
- FILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000
- FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000
- FILE_FLAG_OPEN_NO_RECALL = 0x00100000
- FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000
- FILE_FLAG_SESSION_AWARE = 0x00800000
- FILE_FLAG_POSIX_SEMANTICS = 0x01000000
- FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
- FILE_FLAG_DELETE_ON_CLOSE = 0x04000000
- FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000
- FILE_FLAG_RANDOM_ACCESS = 0x10000000
- FILE_FLAG_NO_BUFFERING = 0x20000000
- FILE_FLAG_OVERLAPPED = 0x40000000
- FILE_FLAG_WRITE_THROUGH = 0x80000000
- HANDLE_FLAG_INHERIT = 0x00000001
- STARTF_USESTDHANDLES = 0x00000100
- STARTF_USESHOWWINDOW = 0x00000001
- DUPLICATE_CLOSE_SOURCE = 0x00000001
- DUPLICATE_SAME_ACCESS = 0x00000002
- STD_INPUT_HANDLE = -10 & (1<<32 - 1)
- STD_OUTPUT_HANDLE = -11 & (1<<32 - 1)
- STD_ERROR_HANDLE = -12 & (1<<32 - 1)
- FILE_BEGIN = 0
- FILE_CURRENT = 1
- FILE_END = 2
- LANG_ENGLISH = 0x09
- SUBLANG_ENGLISH_US = 0x01
- FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
- FORMAT_MESSAGE_IGNORE_INSERTS = 512
- FORMAT_MESSAGE_FROM_STRING = 1024
- FORMAT_MESSAGE_FROM_HMODULE = 2048
- FORMAT_MESSAGE_FROM_SYSTEM = 4096
- FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
- FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
- MAX_PATH = 260
- MAX_LONG_PATH = 32768
- MAX_COMPUTERNAME_LENGTH = 15
- TIME_ZONE_ID_UNKNOWN = 0
- TIME_ZONE_ID_STANDARD = 1
- TIME_ZONE_ID_DAYLIGHT = 2
- IGNORE = 0
- INFINITE = 0xffffffff
- WAIT_ABANDONED = 0x00000080
- WAIT_OBJECT_0 = 0x00000000
- WAIT_FAILED = 0xFFFFFFFF
- // Access rights for process.
- PROCESS_CREATE_PROCESS = 0x0080
- PROCESS_CREATE_THREAD = 0x0002
- PROCESS_DUP_HANDLE = 0x0040
- PROCESS_QUERY_INFORMATION = 0x0400
- PROCESS_QUERY_LIMITED_INFORMATION = 0x1000
- PROCESS_SET_INFORMATION = 0x0200
- PROCESS_SET_QUOTA = 0x0100
- PROCESS_SUSPEND_RESUME = 0x0800
- PROCESS_TERMINATE = 0x0001
- PROCESS_VM_OPERATION = 0x0008
- PROCESS_VM_READ = 0x0010
- PROCESS_VM_WRITE = 0x0020
- // Access rights for thread.
- THREAD_DIRECT_IMPERSONATION = 0x0200
- THREAD_GET_CONTEXT = 0x0008
- THREAD_IMPERSONATE = 0x0100
- THREAD_QUERY_INFORMATION = 0x0040
- THREAD_QUERY_LIMITED_INFORMATION = 0x0800
- THREAD_SET_CONTEXT = 0x0010
- THREAD_SET_INFORMATION = 0x0020
- THREAD_SET_LIMITED_INFORMATION = 0x0400
- THREAD_SET_THREAD_TOKEN = 0x0080
- THREAD_SUSPEND_RESUME = 0x0002
- THREAD_TERMINATE = 0x0001
- FILE_MAP_COPY = 0x01
- FILE_MAP_WRITE = 0x02
- FILE_MAP_READ = 0x04
- FILE_MAP_EXECUTE = 0x20
- CTRL_C_EVENT = 0
- CTRL_BREAK_EVENT = 1
- CTRL_CLOSE_EVENT = 2
- CTRL_LOGOFF_EVENT = 5
- CTRL_SHUTDOWN_EVENT = 6
- // Windows reserves errors >= 1<<29 for application use.
- APPLICATION_ERROR = 1 << 29
- )
- const (
- // Process creation flags.
- CREATE_BREAKAWAY_FROM_JOB = 0x01000000
- CREATE_DEFAULT_ERROR_MODE = 0x04000000
- CREATE_NEW_CONSOLE = 0x00000010
- CREATE_NEW_PROCESS_GROUP = 0x00000200
- CREATE_NO_WINDOW = 0x08000000
- CREATE_PROTECTED_PROCESS = 0x00040000
- CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000
- CREATE_SEPARATE_WOW_VDM = 0x00000800
- CREATE_SHARED_WOW_VDM = 0x00001000
- CREATE_SUSPENDED = 0x00000004
- CREATE_UNICODE_ENVIRONMENT = 0x00000400
- DEBUG_ONLY_THIS_PROCESS = 0x00000002
- DEBUG_PROCESS = 0x00000001
- DETACHED_PROCESS = 0x00000008
- EXTENDED_STARTUPINFO_PRESENT = 0x00080000
- INHERIT_PARENT_AFFINITY = 0x00010000
- )
- const (
- // attributes for ProcThreadAttributeList
- PROC_THREAD_ATTRIBUTE_PARENT_PROCESS = 0x00020000
- PROC_THREAD_ATTRIBUTE_HANDLE_LIST = 0x00020002
- PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY = 0x00030003
- PROC_THREAD_ATTRIBUTE_PREFERRED_NODE = 0x00020004
- PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR = 0x00030005
- PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007
- PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006
- PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b
- )
- const (
- // flags for CreateToolhelp32Snapshot
- TH32CS_SNAPHEAPLIST = 0x01
- TH32CS_SNAPPROCESS = 0x02
- TH32CS_SNAPTHREAD = 0x04
- TH32CS_SNAPMODULE = 0x08
- TH32CS_SNAPMODULE32 = 0x10
- TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD
- TH32CS_INHERIT = 0x80000000
- )
- const (
- // filters for ReadDirectoryChangesW and FindFirstChangeNotificationW
- FILE_NOTIFY_CHANGE_FILE_NAME = 0x001
- FILE_NOTIFY_CHANGE_DIR_NAME = 0x002
- FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004
- FILE_NOTIFY_CHANGE_SIZE = 0x008
- FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010
- FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020
- FILE_NOTIFY_CHANGE_CREATION = 0x040
- FILE_NOTIFY_CHANGE_SECURITY = 0x100
- )
- const (
- // do not reorder
- FILE_ACTION_ADDED = iota + 1
- FILE_ACTION_REMOVED
- FILE_ACTION_MODIFIED
- FILE_ACTION_RENAMED_OLD_NAME
- FILE_ACTION_RENAMED_NEW_NAME
- )
- const (
- // wincrypt.h
- /* certenrolld_begin -- PROV_RSA_*/
- PROV_RSA_FULL = 1
- PROV_RSA_SIG = 2
- PROV_DSS = 3
- PROV_FORTEZZA = 4
- PROV_MS_EXCHANGE = 5
- PROV_SSL = 6
- PROV_RSA_SCHANNEL = 12
- PROV_DSS_DH = 13
- PROV_EC_ECDSA_SIG = 14
- PROV_EC_ECNRA_SIG = 15
- PROV_EC_ECDSA_FULL = 16
- PROV_EC_ECNRA_FULL = 17
- PROV_DH_SCHANNEL = 18
- PROV_SPYRUS_LYNKS = 20
- PROV_RNG = 21
- PROV_INTEL_SEC = 22
- PROV_REPLACE_OWF = 23
- PROV_RSA_AES = 24
- /* dwFlags definitions for CryptAcquireContext */
- CRYPT_VERIFYCONTEXT = 0xF0000000
- CRYPT_NEWKEYSET = 0x00000008
- CRYPT_DELETEKEYSET = 0x00000010
- CRYPT_MACHINE_KEYSET = 0x00000020
- CRYPT_SILENT = 0x00000040
- CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
- /* Flags for PFXImportCertStore */
- CRYPT_EXPORTABLE = 0x00000001
- CRYPT_USER_PROTECTED = 0x00000002
- CRYPT_USER_KEYSET = 0x00001000
- PKCS12_PREFER_CNG_KSP = 0x00000100
- PKCS12_ALWAYS_CNG_KSP = 0x00000200
- PKCS12_ALLOW_OVERWRITE_KEY = 0x00004000
- PKCS12_NO_PERSIST_KEY = 0x00008000
- PKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010
- /* Flags for CryptAcquireCertificatePrivateKey */
- CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001
- CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002
- CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004
- CRYPT_ACQUIRE_NO_HEALING = 0x00000008
- CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040
- CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG = 0x00000080
- CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK = 0x00070000
- CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG = 0x00010000
- CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000
- CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x00040000
- /* pdwKeySpec for CryptAcquireCertificatePrivateKey */
- AT_KEYEXCHANGE = 1
- AT_SIGNATURE = 2
- CERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF
- /* Default usage match type is AND with value zero */
- USAGE_MATCH_TYPE_AND = 0
- USAGE_MATCH_TYPE_OR = 1
- /* msgAndCertEncodingType values for CertOpenStore function */
- X509_ASN_ENCODING = 0x00000001
- PKCS_7_ASN_ENCODING = 0x00010000
- /* storeProvider values for CertOpenStore function */
- CERT_STORE_PROV_MSG = 1
- CERT_STORE_PROV_MEMORY = 2
- CERT_STORE_PROV_FILE = 3
- CERT_STORE_PROV_REG = 4
- CERT_STORE_PROV_PKCS7 = 5
- CERT_STORE_PROV_SERIALIZED = 6
- CERT_STORE_PROV_FILENAME_A = 7
- CERT_STORE_PROV_FILENAME_W = 8
- CERT_STORE_PROV_FILENAME = CERT_STORE_PROV_FILENAME_W
- CERT_STORE_PROV_SYSTEM_A = 9
- CERT_STORE_PROV_SYSTEM_W = 10
- CERT_STORE_PROV_SYSTEM = CERT_STORE_PROV_SYSTEM_W
- CERT_STORE_PROV_COLLECTION = 11
- CERT_STORE_PROV_SYSTEM_REGISTRY_A = 12
- CERT_STORE_PROV_SYSTEM_REGISTRY_W = 13
- CERT_STORE_PROV_SYSTEM_REGISTRY = CERT_STORE_PROV_SYSTEM_REGISTRY_W
- CERT_STORE_PROV_PHYSICAL_W = 14
- CERT_STORE_PROV_PHYSICAL = CERT_STORE_PROV_PHYSICAL_W
- CERT_STORE_PROV_SMART_CARD_W = 15
- CERT_STORE_PROV_SMART_CARD = CERT_STORE_PROV_SMART_CARD_W
- CERT_STORE_PROV_LDAP_W = 16
- CERT_STORE_PROV_LDAP = CERT_STORE_PROV_LDAP_W
- CERT_STORE_PROV_PKCS12 = 17
- /* store characteristics (low WORD of flag) for CertOpenStore function */
- CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001
- CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002
- CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004
- CERT_STORE_DELETE_FLAG = 0x00000010
- CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020
- CERT_STORE_SHARE_STORE_FLAG = 0x00000040
- CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080
- CERT_STORE_MANIFOLD_FLAG = 0x00000100
- CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200
- CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400
- CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800
- CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000
- CERT_STORE_CREATE_NEW_FLAG = 0x00002000
- CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000
- CERT_STORE_READONLY_FLAG = 0x00008000
- /* store locations (high WORD of flag) for CertOpenStore function */
- CERT_SYSTEM_STORE_CURRENT_USER = 0x00010000
- CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000
- CERT_SYSTEM_STORE_CURRENT_SERVICE = 0x00040000
- CERT_SYSTEM_STORE_SERVICES = 0x00050000
- CERT_SYSTEM_STORE_USERS = 0x00060000
- CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = 0x00070000
- CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000
- CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = 0x00090000
- CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000
- CERT_SYSTEM_STORE_RELOCATE_FLAG = 0x80000000
- /* Miscellaneous high-WORD flags for CertOpenStore function */
- CERT_REGISTRY_STORE_REMOTE_FLAG = 0x00010000
- CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x00020000
- CERT_REGISTRY_STORE_ROAMING_FLAG = 0x00040000
- CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000
- CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000
- CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = 0x80000000
- CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x00010000
- CERT_LDAP_STORE_SIGN_FLAG = 0x00010000
- CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x00020000
- CERT_LDAP_STORE_OPENED_FLAG = 0x00040000
- CERT_LDAP_STORE_UNBIND_FLAG = 0x00080000
- /* addDisposition values for CertAddCertificateContextToStore function */
- CERT_STORE_ADD_NEW = 1
- CERT_STORE_ADD_USE_EXISTING = 2
- CERT_STORE_ADD_REPLACE_EXISTING = 3
- CERT_STORE_ADD_ALWAYS = 4
- CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5
- CERT_STORE_ADD_NEWER = 6
- CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7
- /* ErrorStatus values for CertTrustStatus struct */
- CERT_TRUST_NO_ERROR = 0x00000000
- CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001
- CERT_TRUST_IS_REVOKED = 0x00000004
- CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008
- CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010
- CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020
- CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040
- CERT_TRUST_IS_CYCLIC = 0x00000080
- CERT_TRUST_INVALID_EXTENSION = 0x00000100
- CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200
- CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400
- CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800
- CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000
- CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000
- CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000
- CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000
- CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000
- CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000
- CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000
- CERT_TRUST_HAS_WEAK_SIGNATURE = 0x00100000
- CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000
- CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000
- CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000
- CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000
- /* InfoStatus values for CertTrustStatus struct */
- CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001
- CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002
- CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004
- CERT_TRUST_IS_SELF_SIGNED = 0x00000008
- CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100
- CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000400
- CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400
- CERT_TRUST_IS_PEER_TRUSTED = 0x00000800
- CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED = 0x00001000
- CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000
- CERT_TRUST_IS_CA_TRUSTED = 0x00004000
- CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000
- /* Certificate Information Flags */
- CERT_INFO_VERSION_FLAG = 1
- CERT_INFO_SERIAL_NUMBER_FLAG = 2
- CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3
- CERT_INFO_ISSUER_FLAG = 4
- CERT_INFO_NOT_BEFORE_FLAG = 5
- CERT_INFO_NOT_AFTER_FLAG = 6
- CERT_INFO_SUBJECT_FLAG = 7
- CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8
- CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9
- CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10
- CERT_INFO_EXTENSION_FLAG = 11
- /* dwFindType for CertFindCertificateInStore */
- CERT_COMPARE_MASK = 0xFFFF
- CERT_COMPARE_SHIFT = 16
- CERT_COMPARE_ANY = 0
- CERT_COMPARE_SHA1_HASH = 1
- CERT_COMPARE_NAME = 2
- CERT_COMPARE_ATTR = 3
- CERT_COMPARE_MD5_HASH = 4
- CERT_COMPARE_PROPERTY = 5
- CERT_COMPARE_PUBLIC_KEY = 6
- CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH
- CERT_COMPARE_NAME_STR_A = 7
- CERT_COMPARE_NAME_STR_W = 8
- CERT_COMPARE_KEY_SPEC = 9
- CERT_COMPARE_ENHKEY_USAGE = 10
- CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE
- CERT_COMPARE_SUBJECT_CERT = 11
- CERT_COMPARE_ISSUER_OF = 12
- CERT_COMPARE_EXISTING = 13
- CERT_COMPARE_SIGNATURE_HASH = 14
- CERT_COMPARE_KEY_IDENTIFIER = 15
- CERT_COMPARE_CERT_ID = 16
- CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17
- CERT_COMPARE_PUBKEY_MD5_HASH = 18
- CERT_COMPARE_SUBJECT_INFO_ACCESS = 19
- CERT_COMPARE_HASH_STR = 20
- CERT_COMPARE_HAS_PRIVATE_KEY = 21
- CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)
- CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)
- CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)
- CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)
- CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)
- CERT_FIND_HASH = CERT_FIND_SHA1_HASH
- CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)
- CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)
- CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
- CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
- CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
- CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
- CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
- CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
- CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W
- CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
- CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
- CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W
- CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)
- CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)
- CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE
- CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)
- CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)
- CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)
- CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)
- CERT_FIND_CROSS_CERT_DIST_POINTS = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)
- CERT_FIND_PUBKEY_MD5_HASH = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)
- CERT_FIND_SUBJECT_INFO_ACCESS = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT)
- CERT_FIND_HASH_STR = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT)
- CERT_FIND_HAS_PRIVATE_KEY = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT)
- CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1
- CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2
- CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4
- CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8
- CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10
- CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20
- CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG
- CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
- CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
- CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG
- CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG
- CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG
- /* policyOID values for CertVerifyCertificateChainPolicy function */
- CERT_CHAIN_POLICY_BASE = 1
- CERT_CHAIN_POLICY_AUTHENTICODE = 2
- CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3
- CERT_CHAIN_POLICY_SSL = 4
- CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5
- CERT_CHAIN_POLICY_NT_AUTH = 6
- CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7
- CERT_CHAIN_POLICY_EV = 8
- CERT_CHAIN_POLICY_SSL_F12 = 9
- /* flag for dwFindType CertFindChainInStore */
- CERT_CHAIN_FIND_BY_ISSUER = 1
- /* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */
- CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001
- CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002
- CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004
- CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008
- CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000
- CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000
- /* Certificate Store close flags */
- CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001
- CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002
- /* CryptQueryObject object type */
- CERT_QUERY_OBJECT_FILE = 1
- CERT_QUERY_OBJECT_BLOB = 2
- /* CryptQueryObject content type flags */
- CERT_QUERY_CONTENT_CERT = 1
- CERT_QUERY_CONTENT_CTL = 2
- CERT_QUERY_CONTENT_CRL = 3
- CERT_QUERY_CONTENT_SERIALIZED_STORE = 4
- CERT_QUERY_CONTENT_SERIALIZED_CERT = 5
- CERT_QUERY_CONTENT_SERIALIZED_CTL = 6
- CERT_QUERY_CONTENT_SERIALIZED_CRL = 7
- CERT_QUERY_CONTENT_PKCS7_SIGNED = 8
- CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9
- CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10
- CERT_QUERY_CONTENT_PKCS10 = 11
- CERT_QUERY_CONTENT_PFX = 12
- CERT_QUERY_CONTENT_CERT_PAIR = 13
- CERT_QUERY_CONTENT_PFX_AND_LOAD = 14
- CERT_QUERY_CONTENT_FLAG_CERT = (1 << CERT_QUERY_CONTENT_CERT)
- CERT_QUERY_CONTENT_FLAG_CTL = (1 << CERT_QUERY_CONTENT_CTL)
- CERT_QUERY_CONTENT_FLAG_CRL = (1 << CERT_QUERY_CONTENT_CRL)
- CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)
- CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)
- CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)
- CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)
- CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)
- CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)
- CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
- CERT_QUERY_CONTENT_FLAG_PKCS10 = (1 << CERT_QUERY_CONTENT_PKCS10)
- CERT_QUERY_CONTENT_FLAG_PFX = (1 << CERT_QUERY_CONTENT_PFX)
- CERT_QUERY_CONTENT_FLAG_CERT_PAIR = (1 << CERT_QUERY_CONTENT_CERT_PAIR)
- CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD)
- 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)
- 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)
- /* CryptQueryObject format type flags */
- CERT_QUERY_FORMAT_BINARY = 1
- CERT_QUERY_FORMAT_BASE64_ENCODED = 2
- CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3
- CERT_QUERY_FORMAT_FLAG_BINARY = (1 << CERT_QUERY_FORMAT_BINARY)
- CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)
- CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)
- CERT_QUERY_FORMAT_FLAG_ALL = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED)
- /* CertGetNameString name types */
- CERT_NAME_EMAIL_TYPE = 1
- CERT_NAME_RDN_TYPE = 2
- CERT_NAME_ATTR_TYPE = 3
- CERT_NAME_SIMPLE_DISPLAY_TYPE = 4
- CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5
- CERT_NAME_DNS_TYPE = 6
- CERT_NAME_URL_TYPE = 7
- CERT_NAME_UPN_TYPE = 8
- /* CertGetNameString flags */
- CERT_NAME_ISSUER_FLAG = 0x1
- CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x10000
- CERT_NAME_SEARCH_ALL_NAMES_FLAG = 0x2
- CERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000
- /* AuthType values for SSLExtraCertChainPolicyPara struct */
- AUTHTYPE_CLIENT = 1
- AUTHTYPE_SERVER = 2
- /* Checks values for SSLExtraCertChainPolicyPara struct */
- SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080
- SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100
- SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200
- SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000
- SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000
- /* Flags for Crypt[Un]ProtectData */
- CRYPTPROTECT_UI_FORBIDDEN = 0x1
- CRYPTPROTECT_LOCAL_MACHINE = 0x4
- CRYPTPROTECT_CRED_SYNC = 0x8
- CRYPTPROTECT_AUDIT = 0x10
- CRYPTPROTECT_NO_RECOVERY = 0x20
- CRYPTPROTECT_VERIFY_PROTECTION = 0x40
- CRYPTPROTECT_CRED_REGENERATE = 0x80
- /* Flags for CryptProtectPromptStruct */
- CRYPTPROTECT_PROMPT_ON_UNPROTECT = 1
- CRYPTPROTECT_PROMPT_ON_PROTECT = 2
- CRYPTPROTECT_PROMPT_RESERVED = 4
- CRYPTPROTECT_PROMPT_STRONG = 8
- CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16
- )
- const (
- // flags for SetErrorMode
- SEM_FAILCRITICALERRORS = 0x0001
- SEM_NOALIGNMENTFAULTEXCEPT = 0x0004
- SEM_NOGPFAULTERRORBOX = 0x0002
- SEM_NOOPENFILEERRORBOX = 0x8000
- )
- const (
- // Priority class.
- ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000
- BELOW_NORMAL_PRIORITY_CLASS = 0x00004000
- HIGH_PRIORITY_CLASS = 0x00000080
- IDLE_PRIORITY_CLASS = 0x00000040
- NORMAL_PRIORITY_CLASS = 0x00000020
- PROCESS_MODE_BACKGROUND_BEGIN = 0x00100000
- PROCESS_MODE_BACKGROUND_END = 0x00200000
- REALTIME_PRIORITY_CLASS = 0x00000100
- )
- /* wintrust.h constants for WinVerifyTrustEx */
- const (
- WTD_UI_ALL = 1
- WTD_UI_NONE = 2
- WTD_UI_NOBAD = 3
- WTD_UI_NOGOOD = 4
- WTD_REVOKE_NONE = 0
- WTD_REVOKE_WHOLECHAIN = 1
- WTD_CHOICE_FILE = 1
- WTD_CHOICE_CATALOG = 2
- WTD_CHOICE_BLOB = 3
- WTD_CHOICE_SIGNER = 4
- WTD_CHOICE_CERT = 5
- WTD_STATEACTION_IGNORE = 0x00000000
- WTD_STATEACTION_VERIFY = 0x00000010
- WTD_STATEACTION_CLOSE = 0x00000002
- WTD_STATEACTION_AUTO_CACHE = 0x00000003
- WTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004
- WTD_USE_IE4_TRUST_FLAG = 0x1
- WTD_NO_IE4_CHAIN_FLAG = 0x2
- WTD_NO_POLICY_USAGE_FLAG = 0x4
- WTD_REVOCATION_CHECK_NONE = 0x10
- WTD_REVOCATION_CHECK_END_CERT = 0x20
- WTD_REVOCATION_CHECK_CHAIN = 0x40
- WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80
- WTD_SAFER_FLAG = 0x100
- WTD_HASH_ONLY_FLAG = 0x200
- WTD_USE_DEFAULT_OSVER_CHECK = 0x400
- WTD_LIFETIME_SIGNING_FLAG = 0x800
- WTD_CACHE_ONLY_URL_RETRIEVAL = 0x1000
- WTD_DISABLE_MD2_MD4 = 0x2000
- WTD_MOTW = 0x4000
- WTD_UICONTEXT_EXECUTE = 0
- WTD_UICONTEXT_INSTALL = 1
- )
- var (
- OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00")
- OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00")
- OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00")
- WINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{
- Data1: 0xaac56b,
- Data2: 0xcd44,
- Data3: 0x11d0,
- Data4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee},
- }
- )
- // Pointer represents a pointer to an arbitrary Windows type.
- //
- // Pointer-typed fields may point to one of many different types. It's
- // up to the caller to provide a pointer to the appropriate type, cast
- // to Pointer. The caller must obey the unsafe.Pointer rules while
- // doing so.
- type Pointer *struct{}
- // Invented values to support what package os expects.
- type Timeval struct {
- Sec int32
- Usec int32
- }
- func (tv *Timeval) Nanoseconds() int64 {
- return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
- }
- func NsecToTimeval(nsec int64) (tv Timeval) {
- tv.Sec = int32(nsec / 1e9)
- tv.Usec = int32(nsec % 1e9 / 1e3)
- return
- }
- type Overlapped struct {
- Internal uintptr
- InternalHigh uintptr
- Offset uint32
- OffsetHigh uint32
- HEvent Handle
- }
- type FileNotifyInformation struct {
- NextEntryOffset uint32
- Action uint32
- FileNameLength uint32
- FileName uint16
- }
- type Filetime struct {
- LowDateTime uint32
- HighDateTime uint32
- }
- // Nanoseconds returns Filetime ft in nanoseconds
- // since Epoch (00:00:00 UTC, January 1, 1970).
- func (ft *Filetime) Nanoseconds() int64 {
- // 100-nanosecond intervals since January 1, 1601
- nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
- // change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
- nsec -= 116444736000000000
- // convert into nanoseconds
- nsec *= 100
- return nsec
- }
- func NsecToFiletime(nsec int64) (ft Filetime) {
- // convert into 100-nanosecond
- nsec /= 100
- // change starting time to January 1, 1601
- nsec += 116444736000000000
- // split into high / low
- ft.LowDateTime = uint32(nsec & 0xffffffff)
- ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
- return ft
- }
- type Win32finddata struct {
- FileAttributes uint32
- CreationTime Filetime
- LastAccessTime Filetime
- LastWriteTime Filetime
- FileSizeHigh uint32
- FileSizeLow uint32
- Reserved0 uint32
- Reserved1 uint32
- FileName [MAX_PATH - 1]uint16
- AlternateFileName [13]uint16
- }
- // This is the actual system call structure.
- // Win32finddata is what we committed to in Go 1.
- type win32finddata1 struct {
- FileAttributes uint32
- CreationTime Filetime
- LastAccessTime Filetime
- LastWriteTime Filetime
- FileSizeHigh uint32
- FileSizeLow uint32
- Reserved0 uint32
- Reserved1 uint32
- FileName [MAX_PATH]uint16
- AlternateFileName [14]uint16
- // The Microsoft documentation for this struct¹ describes three additional
- // fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields
- // are empirically only present in the macOS port of the Win32 API,² and thus
- // not needed for binaries built for Windows.
- //
- // ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe
- // ² https://golang.org/issue/42637#issuecomment-760715755.
- }
- func copyFindData(dst *Win32finddata, src *win32finddata1) {
- dst.FileAttributes = src.FileAttributes
- dst.CreationTime = src.CreationTime
- dst.LastAccessTime = src.LastAccessTime
- dst.LastWriteTime = src.LastWriteTime
- dst.FileSizeHigh = src.FileSizeHigh
- dst.FileSizeLow = src.FileSizeLow
- dst.Reserved0 = src.Reserved0
- dst.Reserved1 = src.Reserved1
- // The src is 1 element bigger than dst, but it must be NUL.
- copy(dst.FileName[:], src.FileName[:])
- copy(dst.AlternateFileName[:], src.AlternateFileName[:])
- }
- type ByHandleFileInformation struct {
- FileAttributes uint32
- CreationTime Filetime
- LastAccessTime Filetime
- LastWriteTime Filetime
- VolumeSerialNumber uint32
- FileSizeHigh uint32
- FileSizeLow uint32
- NumberOfLinks uint32
- FileIndexHigh uint32
- FileIndexLow uint32
- }
- const (
- GetFileExInfoStandard = 0
- GetFileExMaxInfoLevel = 1
- )
- type Win32FileAttributeData struct {
- FileAttributes uint32
- CreationTime Filetime
- LastAccessTime Filetime
- LastWriteTime Filetime
- FileSizeHigh uint32
- FileSizeLow uint32
- }
- // ShowWindow constants
- const (
- // winuser.h
- SW_HIDE = 0
- SW_NORMAL = 1
- SW_SHOWNORMAL = 1
- SW_SHOWMINIMIZED = 2
- SW_SHOWMAXIMIZED = 3
- SW_MAXIMIZE = 3
- SW_SHOWNOACTIVATE = 4
- SW_SHOW = 5
- SW_MINIMIZE = 6
- SW_SHOWMINNOACTIVE = 7
- SW_SHOWNA = 8
- SW_RESTORE = 9
- SW_SHOWDEFAULT = 10
- SW_FORCEMINIMIZE = 11
- )
- type StartupInfo struct {
- Cb uint32
- _ *uint16
- Desktop *uint16
- Title *uint16
- X uint32
- Y uint32
- XSize uint32
- YSize uint32
- XCountChars uint32
- YCountChars uint32
- FillAttribute uint32
- Flags uint32
- ShowWindow uint16
- _ uint16
- _ *byte
- StdInput Handle
- StdOutput Handle
- StdErr Handle
- }
- type StartupInfoEx struct {
- StartupInfo
- ProcThreadAttributeList *ProcThreadAttributeList
- }
- // ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST.
- //
- // To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update
- // it with ProcThreadAttributeListContainer.Update, free its memory using
- // ProcThreadAttributeListContainer.Delete, and access the list itself using
- // ProcThreadAttributeListContainer.List.
- type ProcThreadAttributeList struct{}
- type ProcThreadAttributeListContainer struct {
- data *ProcThreadAttributeList
- heapAllocations []uintptr
- }
- type ProcessInformation struct {
- Process Handle
- Thread Handle
- ProcessId uint32
- ThreadId uint32
- }
- type ProcessEntry32 struct {
- Size uint32
- Usage uint32
- ProcessID uint32
- DefaultHeapID uintptr
- ModuleID uint32
- Threads uint32
- ParentProcessID uint32
- PriClassBase int32
- Flags uint32
- ExeFile [MAX_PATH]uint16
- }
- type ThreadEntry32 struct {
- Size uint32
- Usage uint32
- ThreadID uint32
- OwnerProcessID uint32
- BasePri int32
- DeltaPri int32
- Flags uint32
- }
- type Systemtime struct {
- Year uint16
- Month uint16
- DayOfWeek uint16
- Day uint16
- Hour uint16
- Minute uint16
- Second uint16
- Milliseconds uint16
- }
- type Timezoneinformation struct {
- Bias int32
- StandardName [32]uint16
- StandardDate Systemtime
- StandardBias int32
- DaylightName [32]uint16
- DaylightDate Systemtime
- DaylightBias int32
- }
- // Socket related.
- const (
- AF_UNSPEC = 0
- AF_UNIX = 1
- AF_INET = 2
- AF_NETBIOS = 17
- AF_INET6 = 23
- AF_IRDA = 26
- AF_BTH = 32
- SOCK_STREAM = 1
- SOCK_DGRAM = 2
- SOCK_RAW = 3
- SOCK_RDM = 4
- SOCK_SEQPACKET = 5
- IPPROTO_IP = 0
- IPPROTO_ICMP = 1
- IPPROTO_IGMP = 2
- BTHPROTO_RFCOMM = 3
- IPPROTO_TCP = 6
- IPPROTO_UDP = 17
- IPPROTO_IPV6 = 41
- IPPROTO_ICMPV6 = 58
- IPPROTO_RM = 113
- SOL_SOCKET = 0xffff
- SO_REUSEADDR = 4
- SO_KEEPALIVE = 8
- SO_DONTROUTE = 16
- SO_BROADCAST = 32
- SO_LINGER = 128
- SO_RCVBUF = 0x1002
- SO_RCVTIMEO = 0x1006
- SO_SNDBUF = 0x1001
- SO_UPDATE_ACCEPT_CONTEXT = 0x700b
- SO_UPDATE_CONNECT_CONTEXT = 0x7010
- IOC_OUT = 0x40000000
- IOC_IN = 0x80000000
- IOC_VENDOR = 0x18000000
- IOC_INOUT = IOC_IN | IOC_OUT
- IOC_WS2 = 0x08000000
- SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6
- SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4
- SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12
- // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460
- IP_HDRINCL = 0x2
- IP_TOS = 0x3
- IP_TTL = 0x4
- IP_MULTICAST_IF = 0x9
- IP_MULTICAST_TTL = 0xa
- IP_MULTICAST_LOOP = 0xb
- IP_ADD_MEMBERSHIP = 0xc
- IP_DROP_MEMBERSHIP = 0xd
- IP_PKTINFO = 0x13
- IPV6_V6ONLY = 0x1b
- IPV6_UNICAST_HOPS = 0x4
- IPV6_MULTICAST_IF = 0x9
- IPV6_MULTICAST_HOPS = 0xa
- IPV6_MULTICAST_LOOP = 0xb
- IPV6_JOIN_GROUP = 0xc
- IPV6_LEAVE_GROUP = 0xd
- IPV6_PKTINFO = 0x13
- MSG_OOB = 0x1
- MSG_PEEK = 0x2
- MSG_DONTROUTE = 0x4
- MSG_WAITALL = 0x8
- MSG_TRUNC = 0x0100
- MSG_CTRUNC = 0x0200
- MSG_BCAST = 0x0400
- MSG_MCAST = 0x0800
- SOMAXCONN = 0x7fffffff
- TCP_NODELAY = 1
- SHUT_RD = 0
- SHUT_WR = 1
- SHUT_RDWR = 2
- WSADESCRIPTION_LEN = 256
- WSASYS_STATUS_LEN = 128
- )
- type WSABuf struct {
- Len uint32
- Buf *byte
- }
- type WSAMsg struct {
- Name *syscall.RawSockaddrAny
- Namelen int32
- Buffers *WSABuf
- BufferCount uint32
- Control WSABuf
- Flags uint32
- }
- // Flags for WSASocket
- const (
- WSA_FLAG_OVERLAPPED = 0x01
- WSA_FLAG_MULTIPOINT_C_ROOT = 0x02
- WSA_FLAG_MULTIPOINT_C_LEAF = 0x04
- WSA_FLAG_MULTIPOINT_D_ROOT = 0x08
- WSA_FLAG_MULTIPOINT_D_LEAF = 0x10
- WSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40
- WSA_FLAG_NO_HANDLE_INHERIT = 0x80
- WSA_FLAG_REGISTERED_IO = 0x100
- )
- // Invented values to support what package os expects.
- const (
- S_IFMT = 0x1f000
- S_IFIFO = 0x1000
- S_IFCHR = 0x2000
- S_IFDIR = 0x4000
- S_IFBLK = 0x6000
- S_IFREG = 0x8000
- S_IFLNK = 0xa000
- S_IFSOCK = 0xc000
- S_ISUID = 0x800
- S_ISGID = 0x400
- S_ISVTX = 0x200
- S_IRUSR = 0x100
- S_IWRITE = 0x80
- S_IWUSR = 0x80
- S_IXUSR = 0x40
- )
- const (
- FILE_TYPE_CHAR = 0x0002
- FILE_TYPE_DISK = 0x0001
- FILE_TYPE_PIPE = 0x0003
- FILE_TYPE_REMOTE = 0x8000
- FILE_TYPE_UNKNOWN = 0x0000
- )
- type Hostent struct {
- Name *byte
- Aliases **byte
- AddrType uint16
- Length uint16
- AddrList **byte
- }
- type Protoent struct {
- Name *byte
- Aliases **byte
- Proto uint16
- }
- const (
- DNS_TYPE_A = 0x0001
- DNS_TYPE_NS = 0x0002
- DNS_TYPE_MD = 0x0003
- DNS_TYPE_MF = 0x0004
- DNS_TYPE_CNAME = 0x0005
- DNS_TYPE_SOA = 0x0006
- DNS_TYPE_MB = 0x0007
- DNS_TYPE_MG = 0x0008
- DNS_TYPE_MR = 0x0009
- DNS_TYPE_NULL = 0x000a
- DNS_TYPE_WKS = 0x000b
- DNS_TYPE_PTR = 0x000c
- DNS_TYPE_HINFO = 0x000d
- DNS_TYPE_MINFO = 0x000e
- DNS_TYPE_MX = 0x000f
- DNS_TYPE_TEXT = 0x0010
- DNS_TYPE_RP = 0x0011
- DNS_TYPE_AFSDB = 0x0012
- DNS_TYPE_X25 = 0x0013
- DNS_TYPE_ISDN = 0x0014
- DNS_TYPE_RT = 0x0015
- DNS_TYPE_NSAP = 0x0016
- DNS_TYPE_NSAPPTR = 0x0017
- DNS_TYPE_SIG = 0x0018
- DNS_TYPE_KEY = 0x0019
- DNS_TYPE_PX = 0x001a
- DNS_TYPE_GPOS = 0x001b
- DNS_TYPE_AAAA = 0x001c
- DNS_TYPE_LOC = 0x001d
- DNS_TYPE_NXT = 0x001e
- DNS_TYPE_EID = 0x001f
- DNS_TYPE_NIMLOC = 0x0020
- DNS_TYPE_SRV = 0x0021
- DNS_TYPE_ATMA = 0x0022
- DNS_TYPE_NAPTR = 0x0023
- DNS_TYPE_KX = 0x0024
- DNS_TYPE_CERT = 0x0025
- DNS_TYPE_A6 = 0x0026
- DNS_TYPE_DNAME = 0x0027
- DNS_TYPE_SINK = 0x0028
- DNS_TYPE_OPT = 0x0029
- DNS_TYPE_DS = 0x002B
- DNS_TYPE_RRSIG = 0x002E
- DNS_TYPE_NSEC = 0x002F
- DNS_TYPE_DNSKEY = 0x0030
- DNS_TYPE_DHCID = 0x0031
- DNS_TYPE_UINFO = 0x0064
- DNS_TYPE_UID = 0x0065
- DNS_TYPE_GID = 0x0066
- DNS_TYPE_UNSPEC = 0x0067
- DNS_TYPE_ADDRS = 0x00f8
- DNS_TYPE_TKEY = 0x00f9
- DNS_TYPE_TSIG = 0x00fa
- DNS_TYPE_IXFR = 0x00fb
- DNS_TYPE_AXFR = 0x00fc
- DNS_TYPE_MAILB = 0x00fd
- DNS_TYPE_MAILA = 0x00fe
- DNS_TYPE_ALL = 0x00ff
- DNS_TYPE_ANY = 0x00ff
- DNS_TYPE_WINS = 0xff01
- DNS_TYPE_WINSR = 0xff02
- DNS_TYPE_NBSTAT = 0xff01
- )
- const (
- // flags inside DNSRecord.Dw
- DnsSectionQuestion = 0x0000
- DnsSectionAnswer = 0x0001
- DnsSectionAuthority = 0x0002
- DnsSectionAdditional = 0x0003
- )
- type DNSSRVData struct {
- Target *uint16
- Priority uint16
- Weight uint16
- Port uint16
- Pad uint16
- }
- type DNSPTRData struct {
- Host *uint16
- }
- type DNSMXData struct {
- NameExchange *uint16
- Preference uint16
- Pad uint16
- }
- type DNSTXTData struct {
- StringCount uint16
- StringArray [1]*uint16
- }
- type DNSRecord struct {
- Next *DNSRecord
- Name *uint16
- Type uint16
- Length uint16
- Dw uint32
- Ttl uint32
- Reserved uint32
- Data [40]byte
- }
- const (
- TF_DISCONNECT = 1
- TF_REUSE_SOCKET = 2
- TF_WRITE_BEHIND = 4
- TF_USE_DEFAULT_WORKER = 0
- TF_USE_SYSTEM_THREAD = 16
- TF_USE_KERNEL_APC = 32
- )
- type TransmitFileBuffers struct {
- Head uintptr
- HeadLength uint32
- Tail uintptr
- TailLength uint32
- }
- const (
- IFF_UP = 1
- IFF_BROADCAST = 2
- IFF_LOOPBACK = 4
- IFF_POINTTOPOINT = 8
- IFF_MULTICAST = 16
- )
- const SIO_GET_INTERFACE_LIST = 0x4004747F
- // TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.
- // will be fixed to change variable type as suitable.
- type SockaddrGen [24]byte
- type InterfaceInfo struct {
- Flags uint32
- Address SockaddrGen
- BroadcastAddress SockaddrGen
- Netmask SockaddrGen
- }
- type IpAddressString struct {
- String [16]byte
- }
- type IpMaskString IpAddressString
- type IpAddrString struct {
- Next *IpAddrString
- IpAddress IpAddressString
- IpMask IpMaskString
- Context uint32
- }
- const MAX_ADAPTER_NAME_LENGTH = 256
- const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
- const MAX_ADAPTER_ADDRESS_LENGTH = 8
- type IpAdapterInfo struct {
- Next *IpAdapterInfo
- ComboIndex uint32
- AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
- Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
- AddressLength uint32
- Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
- Index uint32
- Type uint32
- DhcpEnabled uint32
- CurrentIpAddress *IpAddrString
- IpAddressList IpAddrString
- GatewayList IpAddrString
- DhcpServer IpAddrString
- HaveWins bool
- PrimaryWinsServer IpAddrString
- SecondaryWinsServer IpAddrString
- LeaseObtained int64
- LeaseExpires int64
- }
- const MAXLEN_PHYSADDR = 8
- const MAX_INTERFACE_NAME_LEN = 256
- const MAXLEN_IFDESCR = 256
- type MibIfRow struct {
- Name [MAX_INTERFACE_NAME_LEN]uint16
- Index uint32
- Type uint32
- Mtu uint32
- Speed uint32
- PhysAddrLen uint32
- PhysAddr [MAXLEN_PHYSADDR]byte
- AdminStatus uint32
- OperStatus uint32
- LastChange uint32
- InOctets uint32
- InUcastPkts uint32
- InNUcastPkts uint32
- InDiscards uint32
- InErrors uint32
- InUnknownProtos uint32
- OutOctets uint32
- OutUcastPkts uint32
- OutNUcastPkts uint32
- OutDiscards uint32
- OutErrors uint32
- OutQLen uint32
- DescrLen uint32
- Descr [MAXLEN_IFDESCR]byte
- }
- type CertInfo struct {
- Version uint32
- SerialNumber CryptIntegerBlob
- SignatureAlgorithm CryptAlgorithmIdentifier
- Issuer CertNameBlob
- NotBefore Filetime
- NotAfter Filetime
- Subject CertNameBlob
- SubjectPublicKeyInfo CertPublicKeyInfo
- IssuerUniqueId CryptBitBlob
- SubjectUniqueId CryptBitBlob
- CountExtensions uint32
- Extensions *CertExtension
- }
- type CertExtension struct {
- ObjId *byte
- Critical int32
- Value CryptObjidBlob
- }
- type CryptAlgorithmIdentifier struct {
- ObjId *byte
- Parameters CryptObjidBlob
- }
- type CertPublicKeyInfo struct {
- Algorithm CryptAlgorithmIdentifier
- PublicKey CryptBitBlob
- }
- type DataBlob struct {
- Size uint32
- Data *byte
- }
- type CryptIntegerBlob DataBlob
- type CryptUintBlob DataBlob
- type CryptObjidBlob DataBlob
- type CertNameBlob DataBlob
- type CertRdnValueBlob DataBlob
- type CertBlob DataBlob
- type CrlBlob DataBlob
- type CryptDataBlob DataBlob
- type CryptHashBlob DataBlob
- type CryptDigestBlob DataBlob
- type CryptDerBlob DataBlob
- type CryptAttrBlob DataBlob
- type CryptBitBlob struct {
- Size uint32
- Data *byte
- UnusedBits uint32
- }
- type CertContext struct {
- EncodingType uint32
- EncodedCert *byte
- Length uint32
- CertInfo *CertInfo
- Store Handle
- }
- type CertChainContext struct {
- Size uint32
- TrustStatus CertTrustStatus
- ChainCount uint32
- Chains **CertSimpleChain
- LowerQualityChainCount uint32
- LowerQualityChains **CertChainContext
- HasRevocationFreshnessTime uint32
- RevocationFreshnessTime uint32
- }
- type CertTrustListInfo struct {
- // Not implemented
- }
- type CertSimpleChain struct {
- Size uint32
- TrustStatus CertTrustStatus
- NumElements uint32
- Elements **CertChainElement
- TrustListInfo *CertTrustListInfo
- HasRevocationFreshnessTime uint32
- RevocationFreshnessTime uint32
- }
- type CertChainElement struct {
- Size uint32
- CertContext *CertContext
- TrustStatus CertTrustStatus
- RevocationInfo *CertRevocationInfo
- IssuanceUsage *CertEnhKeyUsage
- ApplicationUsage *CertEnhKeyUsage
- ExtendedErrorInfo *uint16
- }
- type CertRevocationCrlInfo struct {
- // Not implemented
- }
- type CertRevocationInfo struct {
- Size uint32
- RevocationResult uint32
- RevocationOid *byte
- OidSpecificInfo Pointer
- HasFreshnessTime uint32
- FreshnessTime uint32
- CrlInfo *CertRevocationCrlInfo
- }
- type CertTrustStatus struct {
- ErrorStatus uint32
- InfoStatus uint32
- }
- type CertUsageMatch struct {
- Type uint32
- Usage CertEnhKeyUsage
- }
- type CertEnhKeyUsage struct {
- Length uint32
- UsageIdentifiers **byte
- }
- type CertChainPara struct {
- Size uint32
- RequestedUsage CertUsageMatch
- RequstedIssuancePolicy CertUsageMatch
- URLRetrievalTimeout uint32
- CheckRevocationFreshnessTime uint32
- RevocationFreshnessTime uint32
- CacheResync *Filetime
- }
- type CertChainPolicyPara struct {
- Size uint32
- Flags uint32
- ExtraPolicyPara Pointer
- }
- type SSLExtraCertChainPolicyPara struct {
- Size uint32
- AuthType uint32
- Checks uint32
- ServerName *uint16
- }
- type CertChainPolicyStatus struct {
- Size uint32
- Error uint32
- ChainIndex uint32
- ElementIndex uint32
- ExtraPolicyStatus Pointer
- }
- type CertPolicyInfo struct {
- Identifier *byte
- CountQualifiers uint32
- Qualifiers *CertPolicyQualifierInfo
- }
- type CertPoliciesInfo struct {
- Count uint32
- PolicyInfos *CertPolicyInfo
- }
- type CertPolicyQualifierInfo struct {
- // Not implemented
- }
- type CertStrongSignPara struct {
- Size uint32
- InfoChoice uint32
- InfoOrSerializedInfoOrOID unsafe.Pointer
- }
- type CryptProtectPromptStruct struct {
- Size uint32
- PromptFlags uint32
- App HWND
- Prompt *uint16
- }
- type CertChainFindByIssuerPara struct {
- Size uint32
- UsageIdentifier *byte
- KeySpec uint32
- AcquirePrivateKeyFlags uint32
- IssuerCount uint32
- Issuer Pointer
- FindCallback Pointer
- FindArg Pointer
- IssuerChainIndex *uint32
- IssuerElementIndex *uint32
- }
- type WinTrustData struct {
- Size uint32
- PolicyCallbackData uintptr
- SIPClientData uintptr
- UIChoice uint32
- RevocationChecks uint32
- UnionChoice uint32
- FileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer
- StateAction uint32
- StateData Handle
- URLReference *uint16
- ProvFlags uint32
- UIContext uint32
- SignatureSettings *WinTrustSignatureSettings
- }
- type WinTrustFileInfo struct {
- Size uint32
- FilePath *uint16
- File Handle
- KnownSubject *GUID
- }
- type WinTrustSignatureSettings struct {
- Size uint32
- Index uint32
- Flags uint32
- SecondarySigs uint32
- VerifiedSigIndex uint32
- CryptoPolicy *CertStrongSignPara
- }
- const (
- // do not reorder
- HKEY_CLASSES_ROOT = 0x80000000 + iota
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_PERFORMANCE_DATA
- HKEY_CURRENT_CONFIG
- HKEY_DYN_DATA
- KEY_QUERY_VALUE = 1
- KEY_SET_VALUE = 2
- KEY_CREATE_SUB_KEY = 4
- KEY_ENUMERATE_SUB_KEYS = 8
- KEY_NOTIFY = 16
- KEY_CREATE_LINK = 32
- KEY_WRITE = 0x20006
- KEY_EXECUTE = 0x20019
- KEY_READ = 0x20019
- KEY_WOW64_64KEY = 0x0100
- KEY_WOW64_32KEY = 0x0200
- KEY_ALL_ACCESS = 0xf003f
- )
- const (
- // do not reorder
- REG_NONE = iota
- REG_SZ
- REG_EXPAND_SZ
- REG_BINARY
- REG_DWORD_LITTLE_ENDIAN
- REG_DWORD_BIG_ENDIAN
- REG_LINK
- REG_MULTI_SZ
- REG_RESOURCE_LIST
- REG_FULL_RESOURCE_DESCRIPTOR
- REG_RESOURCE_REQUIREMENTS_LIST
- REG_QWORD_LITTLE_ENDIAN
- REG_DWORD = REG_DWORD_LITTLE_ENDIAN
- REG_QWORD = REG_QWORD_LITTLE_ENDIAN
- )
- const (
- EVENT_MODIFY_STATE = 0x0002
- EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3
- MUTANT_QUERY_STATE = 0x0001
- MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE
- SEMAPHORE_MODIFY_STATE = 0x0002
- SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3
- TIMER_QUERY_STATE = 0x0001
- TIMER_MODIFY_STATE = 0x0002
- TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE
- MUTEX_MODIFY_STATE = MUTANT_QUERY_STATE
- MUTEX_ALL_ACCESS = MUTANT_ALL_ACCESS
- CREATE_EVENT_MANUAL_RESET = 0x1
- CREATE_EVENT_INITIAL_SET = 0x2
- CREATE_MUTEX_INITIAL_OWNER = 0x1
- )
- type AddrinfoW struct {
- Flags int32
- Family int32
- Socktype int32
- Protocol int32
- Addrlen uintptr
- Canonname *uint16
- Addr uintptr
- Next *AddrinfoW
- }
- const (
- AI_PASSIVE = 1
- AI_CANONNAME = 2
- AI_NUMERICHOST = 4
- )
- type GUID struct {
- Data1 uint32
- Data2 uint16
- Data3 uint16
- Data4 [8]byte
- }
- var WSAID_CONNECTEX = GUID{
- 0x25a207b9,
- 0xddf3,
- 0x4660,
- [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},
- }
- var WSAID_WSASENDMSG = GUID{
- 0xa441e712,
- 0x754f,
- 0x43ca,
- [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},
- }
- var WSAID_WSARECVMSG = GUID{
- 0xf689d7c8,
- 0x6f1f,
- 0x436b,
- [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},
- }
- const (
- FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1
- FILE_SKIP_SET_EVENT_ON_HANDLE = 2
- )
- const (
- WSAPROTOCOL_LEN = 255
- MAX_PROTOCOL_CHAIN = 7
- BASE_PROTOCOL = 1
- LAYERED_PROTOCOL = 0
- XP1_CONNECTIONLESS = 0x00000001
- XP1_GUARANTEED_DELIVERY = 0x00000002
- XP1_GUARANTEED_ORDER = 0x00000004
- XP1_MESSAGE_ORIENTED = 0x00000008
- XP1_PSEUDO_STREAM = 0x00000010
- XP1_GRACEFUL_CLOSE = 0x00000020
- XP1_EXPEDITED_DATA = 0x00000040
- XP1_CONNECT_DATA = 0x00000080
- XP1_DISCONNECT_DATA = 0x00000100
- XP1_SUPPORT_BROADCAST = 0x00000200
- XP1_SUPPORT_MULTIPOINT = 0x00000400
- XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800
- XP1_MULTIPOINT_DATA_PLANE = 0x00001000
- XP1_QOS_SUPPORTED = 0x00002000
- XP1_UNI_SEND = 0x00008000
- XP1_UNI_RECV = 0x00010000
- XP1_IFS_HANDLES = 0x00020000
- XP1_PARTIAL_MESSAGE = 0x00040000
- XP1_SAN_SUPPORT_SDP = 0x00080000
- PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001
- PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002
- PFL_HIDDEN = 0x00000004
- PFL_MATCHES_PROTOCOL_ZERO = 0x00000008
- PFL_NETWORKDIRECT_PROVIDER = 0x00000010
- )
- type WSAProtocolInfo struct {
- ServiceFlags1 uint32
- ServiceFlags2 uint32
- ServiceFlags3 uint32
- ServiceFlags4 uint32
- ProviderFlags uint32
- ProviderId GUID
- CatalogEntryId uint32
- ProtocolChain WSAProtocolChain
- Version int32
- AddressFamily int32
- MaxSockAddr int32
- MinSockAddr int32
- SocketType int32
- Protocol int32
- ProtocolMaxOffset int32
- NetworkByteOrder int32
- SecurityScheme int32
- MessageSize uint32
- ProviderReserved uint32
- ProtocolName [WSAPROTOCOL_LEN + 1]uint16
- }
- type WSAProtocolChain struct {
- ChainLen int32
- ChainEntries [MAX_PROTOCOL_CHAIN]uint32
- }
- type TCPKeepalive struct {
- OnOff uint32
- Time uint32
- Interval uint32
- }
- type symbolicLinkReparseBuffer struct {
- SubstituteNameOffset uint16
- SubstituteNameLength uint16
- PrintNameOffset uint16
- PrintNameLength uint16
- Flags uint32
- PathBuffer [1]uint16
- }
- type mountPointReparseBuffer struct {
- SubstituteNameOffset uint16
- SubstituteNameLength uint16
- PrintNameOffset uint16
- PrintNameLength uint16
- PathBuffer [1]uint16
- }
- type reparseDataBuffer struct {
- ReparseTag uint32
- ReparseDataLength uint16
- Reserved uint16
- // GenericReparseBuffer
- reparseBuffer byte
- }
- const (
- FSCTL_GET_REPARSE_POINT = 0x900A8
- MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024
- IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003
- IO_REPARSE_TAG_SYMLINK = 0xA000000C
- SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1
- )
- const (
- ComputerNameNetBIOS = 0
- ComputerNameDnsHostname = 1
- ComputerNameDnsDomain = 2
- ComputerNameDnsFullyQualified = 3
- ComputerNamePhysicalNetBIOS = 4
- ComputerNamePhysicalDnsHostname = 5
- ComputerNamePhysicalDnsDomain = 6
- ComputerNamePhysicalDnsFullyQualified = 7
- ComputerNameMax = 8
- )
- // For MessageBox()
- const (
- MB_OK = 0x00000000
- MB_OKCANCEL = 0x00000001
- MB_ABORTRETRYIGNORE = 0x00000002
- MB_YESNOCANCEL = 0x00000003
- MB_YESNO = 0x00000004
- MB_RETRYCANCEL = 0x00000005
- MB_CANCELTRYCONTINUE = 0x00000006
- MB_ICONHAND = 0x00000010
- MB_ICONQUESTION = 0x00000020
- MB_ICONEXCLAMATION = 0x00000030
- MB_ICONASTERISK = 0x00000040
- MB_USERICON = 0x00000080
- MB_ICONWARNING = MB_ICONEXCLAMATION
- MB_ICONERROR = MB_ICONHAND
- MB_ICONINFORMATION = MB_ICONASTERISK
- MB_ICONSTOP = MB_ICONHAND
- MB_DEFBUTTON1 = 0x00000000
- MB_DEFBUTTON2 = 0x00000100
- MB_DEFBUTTON3 = 0x00000200
- MB_DEFBUTTON4 = 0x00000300
- MB_APPLMODAL = 0x00000000
- MB_SYSTEMMODAL = 0x00001000
- MB_TASKMODAL = 0x00002000
- MB_HELP = 0x00004000
- MB_NOFOCUS = 0x00008000
- MB_SETFOREGROUND = 0x00010000
- MB_DEFAULT_DESKTOP_ONLY = 0x00020000
- MB_TOPMOST = 0x00040000
- MB_RIGHT = 0x00080000
- MB_RTLREADING = 0x00100000
- MB_SERVICE_NOTIFICATION = 0x00200000
- )
- const (
- MOVEFILE_REPLACE_EXISTING = 0x1
- MOVEFILE_COPY_ALLOWED = 0x2
- MOVEFILE_DELAY_UNTIL_REBOOT = 0x4
- MOVEFILE_WRITE_THROUGH = 0x8
- MOVEFILE_CREATE_HARDLINK = 0x10
- MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20
- )
- const GAA_FLAG_INCLUDE_PREFIX = 0x00000010
- const (
- IF_TYPE_OTHER = 1
- IF_TYPE_ETHERNET_CSMACD = 6
- IF_TYPE_ISO88025_TOKENRING = 9
- IF_TYPE_PPP = 23
- IF_TYPE_SOFTWARE_LOOPBACK = 24
- IF_TYPE_ATM = 37
- IF_TYPE_IEEE80211 = 71
- IF_TYPE_TUNNEL = 131
- IF_TYPE_IEEE1394 = 144
- )
- type SocketAddress struct {
- Sockaddr *syscall.RawSockaddrAny
- SockaddrLength int32
- }
- // IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither.
- func (addr *SocketAddress) IP() net.IP {
- if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET {
- return (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:]
- } else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 {
- return (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:]
- }
- return nil
- }
- type IpAdapterUnicastAddress struct {
- Length uint32
- Flags uint32
- Next *IpAdapterUnicastAddress
- Address SocketAddress
- PrefixOrigin int32
- SuffixOrigin int32
- DadState int32
- ValidLifetime uint32
- PreferredLifetime uint32
- LeaseLifetime uint32
- OnLinkPrefixLength uint8
- }
- type IpAdapterAnycastAddress struct {
- Length uint32
- Flags uint32
- Next *IpAdapterAnycastAddress
- Address SocketAddress
- }
- type IpAdapterMulticastAddress struct {
- Length uint32
- Flags uint32
- Next *IpAdapterMulticastAddress
- Address SocketAddress
- }
- type IpAdapterDnsServerAdapter struct {
- Length uint32
- Reserved uint32
- Next *IpAdapterDnsServerAdapter
- Address SocketAddress
- }
- type IpAdapterPrefix struct {
- Length uint32
- Flags uint32
- Next *IpAdapterPrefix
- Address SocketAddress
- PrefixLength uint32
- }
- type IpAdapterAddresses struct {
- Length uint32
- IfIndex uint32
- Next *IpAdapterAddresses
- AdapterName *byte
- FirstUnicastAddress *IpAdapterUnicastAddress
- FirstAnycastAddress *IpAdapterAnycastAddress
- FirstMulticastAddress *IpAdapterMulticastAddress
- FirstDnsServerAddress *IpAdapterDnsServerAdapter
- DnsSuffix *uint16
- Description *uint16
- FriendlyName *uint16
- PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte
- PhysicalAddressLength uint32
- Flags uint32
- Mtu uint32
- IfType uint32
- OperStatus uint32
- Ipv6IfIndex uint32
- ZoneIndices [16]uint32
- FirstPrefix *IpAdapterPrefix
- /* more fields might be present here. */
- }
- const (
- IfOperStatusUp = 1
- IfOperStatusDown = 2
- IfOperStatusTesting = 3
- IfOperStatusUnknown = 4
- IfOperStatusDormant = 5
- IfOperStatusNotPresent = 6
- IfOperStatusLowerLayerDown = 7
- )
- // Console related constants used for the mode parameter to SetConsoleMode. See
- // https://docs.microsoft.com/en-us/windows/console/setconsolemode for details.
- const (
- ENABLE_PROCESSED_INPUT = 0x1
- ENABLE_LINE_INPUT = 0x2
- ENABLE_ECHO_INPUT = 0x4
- ENABLE_WINDOW_INPUT = 0x8
- ENABLE_MOUSE_INPUT = 0x10
- ENABLE_INSERT_MODE = 0x20
- ENABLE_QUICK_EDIT_MODE = 0x40
- ENABLE_EXTENDED_FLAGS = 0x80
- ENABLE_AUTO_POSITION = 0x100
- ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200
- ENABLE_PROCESSED_OUTPUT = 0x1
- ENABLE_WRAP_AT_EOL_OUTPUT = 0x2
- ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4
- DISABLE_NEWLINE_AUTO_RETURN = 0x8
- ENABLE_LVB_GRID_WORLDWIDE = 0x10
- )
- type Coord struct {
- X int16
- Y int16
- }
- type SmallRect struct {
- Left int16
- Top int16
- Right int16
- Bottom int16
- }
- // Used with GetConsoleScreenBuffer to retrieve information about a console
- // screen buffer. See
- // https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str
- // for details.
- type ConsoleScreenBufferInfo struct {
- Size Coord
- CursorPosition Coord
- Attributes uint16
- Window SmallRect
- MaximumWindowSize Coord
- }
- const UNIX_PATH_MAX = 108 // defined in afunix.h
- const (
- // flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags
- JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008
- JOB_OBJECT_LIMIT_AFFINITY = 0x00000010
- JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800
- JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400
- JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200
- JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004
- JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000
- JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040
- JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020
- JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100
- JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002
- JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080
- JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000
- JOB_OBJECT_LIMIT_SUBSET_AFFINITY = 0x00004000
- JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001
- )
- type IO_COUNTERS struct {
- ReadOperationCount uint64
- WriteOperationCount uint64
- OtherOperationCount uint64
- ReadTransferCount uint64
- WriteTransferCount uint64
- OtherTransferCount uint64
- }
- type JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {
- BasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION
- IoInfo IO_COUNTERS
- ProcessMemoryLimit uintptr
- JobMemoryLimit uintptr
- PeakProcessMemoryUsed uintptr
- PeakJobMemoryUsed uintptr
- }
- const (
- // UIRestrictionsClass
- JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040
- JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010
- JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080
- JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020
- JOB_OBJECT_UILIMIT_HANDLES = 0x00000001
- JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002
- JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008
- JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004
- )
- type JOBOBJECT_BASIC_UI_RESTRICTIONS struct {
- UIRestrictionsClass uint32
- }
- const (
- // JobObjectInformationClass
- JobObjectAssociateCompletionPortInformation = 7
- JobObjectBasicLimitInformation = 2
- JobObjectBasicUIRestrictions = 4
- JobObjectCpuRateControlInformation = 15
- JobObjectEndOfJobTimeInformation = 6
- JobObjectExtendedLimitInformation = 9
- JobObjectGroupInformation = 11
- JobObjectGroupInformationEx = 14
- JobObjectLimitViolationInformation2 = 35
- JobObjectNetRateControlInformation = 32
- JobObjectNotificationLimitInformation = 12
- JobObjectNotificationLimitInformation2 = 34
- JobObjectSecurityLimitInformation = 5
- )
- const (
- KF_FLAG_DEFAULT = 0x00000000
- KF_FLAG_FORCE_APP_DATA_REDIRECTION = 0x00080000
- KF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000
- KF_FLAG_FORCE_PACKAGE_REDIRECTION = 0x00020000
- KF_FLAG_NO_PACKAGE_REDIRECTION = 0x00010000
- KF_FLAG_FORCE_APPCONTAINER_REDIRECTION = 0x00020000
- KF_FLAG_NO_APPCONTAINER_REDIRECTION = 0x00010000
- KF_FLAG_CREATE = 0x00008000
- KF_FLAG_DONT_VERIFY = 0x00004000
- KF_FLAG_DONT_UNEXPAND = 0x00002000
- KF_FLAG_NO_ALIAS = 0x00001000
- KF_FLAG_INIT = 0x00000800
- KF_FLAG_DEFAULT_PATH = 0x00000400
- KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200
- KF_FLAG_SIMPLE_IDLIST = 0x00000100
- KF_FLAG_ALIAS_ONLY = 0x80000000
- )
- type OsVersionInfoEx struct {
- osVersionInfoSize uint32
- MajorVersion uint32
- MinorVersion uint32
- BuildNumber uint32
- PlatformId uint32
- CsdVersion [128]uint16
- ServicePackMajor uint16
- ServicePackMinor uint16
- SuiteMask uint16
- ProductType byte
- _ byte
- }
- const (
- EWX_LOGOFF = 0x00000000
- EWX_SHUTDOWN = 0x00000001
- EWX_REBOOT = 0x00000002
- EWX_FORCE = 0x00000004
- EWX_POWEROFF = 0x00000008
- EWX_FORCEIFHUNG = 0x00000010
- EWX_QUICKRESOLVE = 0x00000020
- EWX_RESTARTAPPS = 0x00000040
- EWX_HYBRID_SHUTDOWN = 0x00400000
- EWX_BOOTOPTIONS = 0x01000000
- SHTDN_REASON_FLAG_COMMENT_REQUIRED = 0x01000000
- SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000
- SHTDN_REASON_FLAG_CLEAN_UI = 0x04000000
- SHTDN_REASON_FLAG_DIRTY_UI = 0x08000000
- SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000
- SHTDN_REASON_FLAG_PLANNED = 0x80000000
- SHTDN_REASON_MAJOR_OTHER = 0x00000000
- SHTDN_REASON_MAJOR_NONE = 0x00000000
- SHTDN_REASON_MAJOR_HARDWARE = 0x00010000
- SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000
- SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000
- SHTDN_REASON_MAJOR_APPLICATION = 0x00040000
- SHTDN_REASON_MAJOR_SYSTEM = 0x00050000
- SHTDN_REASON_MAJOR_POWER = 0x00060000
- SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000
- SHTDN_REASON_MINOR_OTHER = 0x00000000
- SHTDN_REASON_MINOR_NONE = 0x000000ff
- SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001
- SHTDN_REASON_MINOR_INSTALLATION = 0x00000002
- SHTDN_REASON_MINOR_UPGRADE = 0x00000003
- SHTDN_REASON_MINOR_RECONFIG = 0x00000004
- SHTDN_REASON_MINOR_HUNG = 0x00000005
- SHTDN_REASON_MINOR_UNSTABLE = 0x00000006
- SHTDN_REASON_MINOR_DISK = 0x00000007
- SHTDN_REASON_MINOR_PROCESSOR = 0x00000008
- SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009
- SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a
- SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b
- SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c
- SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d
- SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e
- SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000F
- SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010
- SHTDN_REASON_MINOR_HOTFIX = 0x00000011
- SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012
- SHTDN_REASON_MINOR_SECURITY = 0x00000013
- SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014
- SHTDN_REASON_MINOR_WMI = 0x00000015
- SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL = 0x00000016
- SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017
- SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL = 0x00000018
- SHTDN_REASON_MINOR_MMC = 0x00000019
- SHTDN_REASON_MINOR_SYSTEMRESTORE = 0x0000001a
- SHTDN_REASON_MINOR_TERMSRV = 0x00000020
- SHTDN_REASON_MINOR_DC_PROMOTION = 0x00000021
- SHTDN_REASON_MINOR_DC_DEMOTION = 0x00000022
- SHTDN_REASON_UNKNOWN = SHTDN_REASON_MINOR_NONE
- SHTDN_REASON_LEGACY_API = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED
- SHTDN_REASON_VALID_BIT_MASK = 0xc0ffffff
- SHUTDOWN_NORETRY = 0x1
- )
- // Flags used for GetModuleHandleEx
- const (
- GET_MODULE_HANDLE_EX_FLAG_PIN = 1
- GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2
- GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 4
- )
- // MUI function flag values
- const (
- MUI_LANGUAGE_ID = 0x4
- MUI_LANGUAGE_NAME = 0x8
- MUI_MERGE_SYSTEM_FALLBACK = 0x10
- MUI_MERGE_USER_FALLBACK = 0x20
- MUI_UI_FALLBACK = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK
- MUI_THREAD_LANGUAGES = 0x40
- MUI_CONSOLE_FILTER = 0x100
- MUI_COMPLEX_SCRIPT_FILTER = 0x200
- MUI_RESET_FILTERS = 0x001
- MUI_USER_PREFERRED_UI_LANGUAGES = 0x10
- MUI_USE_INSTALLED_LANGUAGES = 0x20
- MUI_USE_SEARCH_ALL_LANGUAGES = 0x40
- MUI_LANG_NEUTRAL_PE_FILE = 0x100
- MUI_NON_LANG_NEUTRAL_FILE = 0x200
- MUI_MACHINE_LANGUAGE_SETTINGS = 0x400
- MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL = 0x001
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002
- MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI = 0x004
- MUI_QUERY_TYPE = 0x001
- MUI_QUERY_CHECKSUM = 0x002
- MUI_QUERY_LANGUAGE_NAME = 0x004
- MUI_QUERY_RESOURCE_TYPES = 0x008
- MUI_FILEINFO_VERSION = 0x001
- MUI_FULL_LANGUAGE = 0x01
- MUI_PARTIAL_LANGUAGE = 0x02
- MUI_LIP_LANGUAGE = 0x04
- MUI_LANGUAGE_INSTALLED = 0x20
- MUI_LANGUAGE_LICENSED = 0x40
- )
- // FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx
- const (
- FileBasicInfo = 0
- FileStandardInfo = 1
- FileNameInfo = 2
- FileRenameInfo = 3
- FileDispositionInfo = 4
- FileAllocationInfo = 5
- FileEndOfFileInfo = 6
- FileStreamInfo = 7
- FileCompressionInfo = 8
- FileAttributeTagInfo = 9
- FileIdBothDirectoryInfo = 10
- FileIdBothDirectoryRestartInfo = 11
- FileIoPriorityHintInfo = 12
- FileRemoteProtocolInfo = 13
- FileFullDirectoryInfo = 14
- FileFullDirectoryRestartInfo = 15
- FileStorageInfo = 16
- FileAlignmentInfo = 17
- FileIdInfo = 18
- FileIdExtdDirectoryInfo = 19
- FileIdExtdDirectoryRestartInfo = 20
- FileDispositionInfoEx = 21
- FileRenameInfoEx = 22
- FileCaseSensitiveInfo = 23
- FileNormalizedNameInfo = 24
- )
- // LoadLibrary flags for determining from where to search for a DLL
- const (
- DONT_RESOLVE_DLL_REFERENCES = 0x1
- LOAD_LIBRARY_AS_DATAFILE = 0x2
- LOAD_WITH_ALTERED_SEARCH_PATH = 0x8
- LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x10
- LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x20
- LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x40
- LOAD_LIBRARY_REQUIRE_SIGNED_TARGET = 0x80
- LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x100
- LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x200
- LOAD_LIBRARY_SEARCH_USER_DIRS = 0x400
- LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x800
- LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x1000
- LOAD_LIBRARY_SAFE_CURRENT_DIRS = 0x00002000
- LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000
- LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY = 0x00008000
- )
- // RegNotifyChangeKeyValue notifyFilter flags.
- const (
- // REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted.
- REG_NOTIFY_CHANGE_NAME = 0x00000001
- // REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information.
- REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002
- // 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.
- REG_NOTIFY_CHANGE_LAST_SET = 0x00000004
- // REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key.
- REG_NOTIFY_CHANGE_SECURITY = 0x00000008
- // 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.
- REG_NOTIFY_THREAD_AGNOSTIC = 0x10000000
- )
- type CommTimeouts struct {
- ReadIntervalTimeout uint32
- ReadTotalTimeoutMultiplier uint32
- ReadTotalTimeoutConstant uint32
- WriteTotalTimeoutMultiplier uint32
- WriteTotalTimeoutConstant uint32
- }
- // NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING.
- type NTUnicodeString struct {
- Length uint16
- MaximumLength uint16
- Buffer *uint16
- }
- // NTString is an ANSI string for NT native APIs, corresponding to STRING.
- type NTString struct {
- Length uint16
- MaximumLength uint16
- Buffer *byte
- }
- type LIST_ENTRY struct {
- Flink *LIST_ENTRY
- Blink *LIST_ENTRY
- }
- type LDR_DATA_TABLE_ENTRY struct {
- reserved1 [2]uintptr
- InMemoryOrderLinks LIST_ENTRY
- reserved2 [2]uintptr
- DllBase uintptr
- reserved3 [2]uintptr
- FullDllName NTUnicodeString
- reserved4 [8]byte
- reserved5 [3]uintptr
- reserved6 uintptr
- TimeDateStamp uint32
- }
- type PEB_LDR_DATA struct {
- reserved1 [8]byte
- reserved2 [3]uintptr
- InMemoryOrderModuleList LIST_ENTRY
- }
- type CURDIR struct {
- DosPath NTUnicodeString
- Handle Handle
- }
- type RTL_DRIVE_LETTER_CURDIR struct {
- Flags uint16
- Length uint16
- TimeStamp uint32
- DosPath NTString
- }
- type RTL_USER_PROCESS_PARAMETERS struct {
- MaximumLength, Length uint32
- Flags, DebugFlags uint32
- ConsoleHandle Handle
- ConsoleFlags uint32
- StandardInput, StandardOutput, StandardError Handle
- CurrentDirectory CURDIR
- DllPath NTUnicodeString
- ImagePathName NTUnicodeString
- CommandLine NTUnicodeString
- Environment unsafe.Pointer
- StartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32
- WindowFlags, ShowWindowFlags uint32
- WindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString
- CurrentDirectories [32]RTL_DRIVE_LETTER_CURDIR
- EnvironmentSize, EnvironmentVersion uintptr
- PackageDependencyData unsafe.Pointer
- ProcessGroupId uint32
- LoaderThreads uint32
- RedirectionDllName NTUnicodeString
- HeapPartitionName NTUnicodeString
- DefaultThreadpoolCpuSetMasks uintptr
- DefaultThreadpoolCpuSetMaskCount uint32
- }
- type PEB struct {
- reserved1 [2]byte
- BeingDebugged byte
- BitField byte
- reserved3 uintptr
- ImageBaseAddress uintptr
- Ldr *PEB_LDR_DATA
- ProcessParameters *RTL_USER_PROCESS_PARAMETERS
- reserved4 [3]uintptr
- AtlThunkSListPtr uintptr
- reserved5 uintptr
- reserved6 uint32
- reserved7 uintptr
- reserved8 uint32
- AtlThunkSListPtr32 uint32
- reserved9 [45]uintptr
- reserved10 [96]byte
- PostProcessInitRoutine uintptr
- reserved11 [128]byte
- reserved12 [1]uintptr
- SessionId uint32
- }
- type OBJECT_ATTRIBUTES struct {
- Length uint32
- RootDirectory Handle
- ObjectName *NTUnicodeString
- Attributes uint32
- SecurityDescriptor *SECURITY_DESCRIPTOR
- SecurityQoS *SECURITY_QUALITY_OF_SERVICE
- }
- // Values for the Attributes member of OBJECT_ATTRIBUTES.
- const (
- OBJ_INHERIT = 0x00000002
- OBJ_PERMANENT = 0x00000010
- OBJ_EXCLUSIVE = 0x00000020
- OBJ_CASE_INSENSITIVE = 0x00000040
- OBJ_OPENIF = 0x00000080
- OBJ_OPENLINK = 0x00000100
- OBJ_KERNEL_HANDLE = 0x00000200
- OBJ_FORCE_ACCESS_CHECK = 0x00000400
- OBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800
- OBJ_DONT_REPARSE = 0x00001000
- OBJ_VALID_ATTRIBUTES = 0x00001FF2
- )
- type IO_STATUS_BLOCK struct {
- Status NTStatus
- Information uintptr
- }
- type RTLP_CURDIR_REF struct {
- RefCount int32
- Handle Handle
- }
- type RTL_RELATIVE_NAME struct {
- RelativeName NTUnicodeString
- ContainingDirectory Handle
- CurDirRef *RTLP_CURDIR_REF
- }
- const (
- // CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile.
- FILE_SUPERSEDE = 0x00000000
- FILE_OPEN = 0x00000001
- FILE_CREATE = 0x00000002
- FILE_OPEN_IF = 0x00000003
- FILE_OVERWRITE = 0x00000004
- FILE_OVERWRITE_IF = 0x00000005
- FILE_MAXIMUM_DISPOSITION = 0x00000005
- // CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile.
- FILE_DIRECTORY_FILE = 0x00000001
- FILE_WRITE_THROUGH = 0x00000002
- FILE_SEQUENTIAL_ONLY = 0x00000004
- FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008
- FILE_SYNCHRONOUS_IO_ALERT = 0x00000010
- FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020
- FILE_NON_DIRECTORY_FILE = 0x00000040
- FILE_CREATE_TREE_CONNECTION = 0x00000080
- FILE_COMPLETE_IF_OPLOCKED = 0x00000100
- FILE_NO_EA_KNOWLEDGE = 0x00000200
- FILE_OPEN_REMOTE_INSTANCE = 0x00000400
- FILE_RANDOM_ACCESS = 0x00000800
- FILE_DELETE_ON_CLOSE = 0x00001000
- FILE_OPEN_BY_FILE_ID = 0x00002000
- FILE_OPEN_FOR_BACKUP_INTENT = 0x00004000
- FILE_NO_COMPRESSION = 0x00008000
- FILE_OPEN_REQUIRING_OPLOCK = 0x00010000
- FILE_DISALLOW_EXCLUSIVE = 0x00020000
- FILE_RESERVE_OPFILTER = 0x00100000
- FILE_OPEN_REPARSE_POINT = 0x00200000
- FILE_OPEN_NO_RECALL = 0x00400000
- FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000
- // Parameter constants for NtCreateNamedPipeFile.
- FILE_PIPE_BYTE_STREAM_TYPE = 0x00000000
- FILE_PIPE_MESSAGE_TYPE = 0x00000001
- FILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000
- FILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002
- FILE_PIPE_TYPE_VALID_MASK = 0x00000003
- FILE_PIPE_BYTE_STREAM_MODE = 0x00000000
- FILE_PIPE_MESSAGE_MODE = 0x00000001
- FILE_PIPE_QUEUE_OPERATION = 0x00000000
- FILE_PIPE_COMPLETE_OPERATION = 0x00000001
- FILE_PIPE_INBOUND = 0x00000000
- FILE_PIPE_OUTBOUND = 0x00000001
- FILE_PIPE_FULL_DUPLEX = 0x00000002
- FILE_PIPE_DISCONNECTED_STATE = 0x00000001
- FILE_PIPE_LISTENING_STATE = 0x00000002
- FILE_PIPE_CONNECTED_STATE = 0x00000003
- FILE_PIPE_CLOSING_STATE = 0x00000004
- FILE_PIPE_CLIENT_END = 0x00000000
- FILE_PIPE_SERVER_END = 0x00000001
- )
- // ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess.
- const (
- ProcessBasicInformation = iota
- ProcessQuotaLimits
- ProcessIoCounters
- ProcessVmCounters
- ProcessTimes
- ProcessBasePriority
- ProcessRaisePriority
- ProcessDebugPort
- ProcessExceptionPort
- ProcessAccessToken
- ProcessLdtInformation
- ProcessLdtSize
- ProcessDefaultHardErrorMode
- ProcessIoPortHandlers
- ProcessPooledUsageAndLimits
- ProcessWorkingSetWatch
- ProcessUserModeIOPL
- ProcessEnableAlignmentFaultFixup
- ProcessPriorityClass
- ProcessWx86Information
- ProcessHandleCount
- ProcessAffinityMask
- ProcessPriorityBoost
- ProcessDeviceMap
- ProcessSessionInformation
- ProcessForegroundInformation
- ProcessWow64Information
- ProcessImageFileName
- ProcessLUIDDeviceMapsEnabled
- ProcessBreakOnTermination
- ProcessDebugObjectHandle
- ProcessDebugFlags
- ProcessHandleTracing
- ProcessIoPriority
- ProcessExecuteFlags
- ProcessTlsInformation
- ProcessCookie
- ProcessImageInformation
- ProcessCycleTime
- ProcessPagePriority
- ProcessInstrumentationCallback
- ProcessThreadStackAllocation
- ProcessWorkingSetWatchEx
- ProcessImageFileNameWin32
- ProcessImageFileMapping
- ProcessAffinityUpdateMode
- ProcessMemoryAllocationMode
- ProcessGroupInformation
- ProcessTokenVirtualizationEnabled
- ProcessConsoleHostProcess
- ProcessWindowInformation
- ProcessHandleInformation
- ProcessMitigationPolicy
- ProcessDynamicFunctionTableInformation
- ProcessHandleCheckingMode
- ProcessKeepAliveCount
- ProcessRevokeFileHandles
- ProcessWorkingSetControl
- ProcessHandleTable
- ProcessCheckStackExtentsMode
- ProcessCommandLineInformation
- ProcessProtectionInformation
- ProcessMemoryExhaustion
- ProcessFaultInformation
- ProcessTelemetryIdInformation
- ProcessCommitReleaseInformation
- ProcessDefaultCpuSetsInformation
- ProcessAllowedCpuSetsInformation
- ProcessSubsystemProcess
- ProcessJobMemoryInformation
- ProcessInPrivate
- ProcessRaiseUMExceptionOnInvalidHandleClose
- ProcessIumChallengeResponse
- ProcessChildProcessInformation
- ProcessHighGraphicsPriorityInformation
- ProcessSubsystemInformation
- ProcessEnergyValues
- ProcessActivityThrottleState
- ProcessActivityThrottlePolicy
- ProcessWin32kSyscallFilterInformation
- ProcessDisableSystemAllowedCpuSets
- ProcessWakeInformation
- ProcessEnergyTrackingState
- ProcessManageWritesToExecutableMemory
- ProcessCaptureTrustletLiveDump
- ProcessTelemetryCoverage
- ProcessEnclaveInformation
- ProcessEnableReadWriteVmLogging
- ProcessUptimeInformation
- ProcessImageSection
- ProcessDebugAuthInformation
- ProcessSystemResourceManagement
- ProcessSequenceNumber
- ProcessLoaderDetour
- ProcessSecurityDomainInformation
- ProcessCombineSecurityDomainsInformation
- ProcessEnableLogging
- ProcessLeapSecondInformation
- ProcessFiberShadowStackAllocation
- ProcessFreeFiberShadowStackAllocation
- ProcessAltSystemCallInformation
- ProcessDynamicEHContinuationTargets
- ProcessDynamicEnforcedCetCompatibleRanges
- )
- type PROCESS_BASIC_INFORMATION struct {
- ExitStatus NTStatus
- PebBaseAddress *PEB
- AffinityMask uintptr
- BasePriority int32
- UniqueProcessId uintptr
- InheritedFromUniqueProcessId uintptr
- }
- // Constants for LocalAlloc flags.
- const (
- LMEM_FIXED = 0x0
- LMEM_MOVEABLE = 0x2
- LMEM_NOCOMPACT = 0x10
- LMEM_NODISCARD = 0x20
- LMEM_ZEROINIT = 0x40
- LMEM_MODIFY = 0x80
- LMEM_DISCARDABLE = 0xf00
- LMEM_VALID_FLAGS = 0xf72
- LMEM_INVALID_HANDLE = 0x8000
- LHND = LMEM_MOVEABLE | LMEM_ZEROINIT
- LPTR = LMEM_FIXED | LMEM_ZEROINIT
- NONZEROLHND = LMEM_MOVEABLE
- NONZEROLPTR = LMEM_FIXED
- )
- // Constants for the CreateNamedPipe-family of functions.
- const (
- PIPE_ACCESS_INBOUND = 0x1
- PIPE_ACCESS_OUTBOUND = 0x2
- PIPE_ACCESS_DUPLEX = 0x3
- PIPE_CLIENT_END = 0x0
- PIPE_SERVER_END = 0x1
- PIPE_WAIT = 0x0
- PIPE_NOWAIT = 0x1
- PIPE_READMODE_BYTE = 0x0
- PIPE_READMODE_MESSAGE = 0x2
- PIPE_TYPE_BYTE = 0x0
- PIPE_TYPE_MESSAGE = 0x4
- PIPE_ACCEPT_REMOTE_CLIENTS = 0x0
- PIPE_REJECT_REMOTE_CLIENTS = 0x8
- PIPE_UNLIMITED_INSTANCES = 255
- )
- // Constants for security attributes when opening named pipes.
- const (
- SECURITY_ANONYMOUS = SecurityAnonymous << 16
- SECURITY_IDENTIFICATION = SecurityIdentification << 16
- SECURITY_IMPERSONATION = SecurityImpersonation << 16
- SECURITY_DELEGATION = SecurityDelegation << 16
- SECURITY_CONTEXT_TRACKING = 0x40000
- SECURITY_EFFECTIVE_ONLY = 0x80000
- SECURITY_SQOS_PRESENT = 0x100000
- SECURITY_VALID_SQOS_FLAGS = 0x1f0000
- )
- // ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro.
- type ResourceID uint16
- // ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID,
- // or a string, to specify a resource or resource type by name.
- type ResourceIDOrString interface{}
- // Predefined resource names and types.
- var (
- // Predefined names.
- CREATEPROCESS_MANIFEST_RESOURCE_ID ResourceID = 1
- ISOLATIONAWARE_MANIFEST_RESOURCE_ID ResourceID = 2
- ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3
- ISOLATIONPOLICY_MANIFEST_RESOURCE_ID ResourceID = 4
- ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID ResourceID = 5
- MINIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 1 // inclusive
- MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID ResourceID = 16 // inclusive
- // Predefined types.
- RT_CURSOR ResourceID = 1
- RT_BITMAP ResourceID = 2
- RT_ICON ResourceID = 3
- RT_MENU ResourceID = 4
- RT_DIALOG ResourceID = 5
- RT_STRING ResourceID = 6
- RT_FONTDIR ResourceID = 7
- RT_FONT ResourceID = 8
- RT_ACCELERATOR ResourceID = 9
- RT_RCDATA ResourceID = 10
- RT_MESSAGETABLE ResourceID = 11
- RT_GROUP_CURSOR ResourceID = 12
- RT_GROUP_ICON ResourceID = 14
- RT_VERSION ResourceID = 16
- RT_DLGINCLUDE ResourceID = 17
- RT_PLUGPLAY ResourceID = 19
- RT_VXD ResourceID = 20
- RT_ANICURSOR ResourceID = 21
- RT_ANIICON ResourceID = 22
- RT_HTML ResourceID = 23
- RT_MANIFEST ResourceID = 24
- )
- type COAUTHIDENTITY struct {
- User *uint16
- UserLength uint32
- Domain *uint16
- DomainLength uint32
- Password *uint16
- PasswordLength uint32
- Flags uint32
- }
- type COAUTHINFO struct {
- AuthnSvc uint32
- AuthzSvc uint32
- ServerPrincName *uint16
- AuthnLevel uint32
- ImpersonationLevel uint32
- AuthIdentityData *COAUTHIDENTITY
- Capabilities uint32
- }
- type COSERVERINFO struct {
- Reserved1 uint32
- Aame *uint16
- AuthInfo *COAUTHINFO
- Reserved2 uint32
- }
- type BIND_OPTS3 struct {
- CbStruct uint32
- Flags uint32
- Mode uint32
- TickCountDeadline uint32
- TrackFlags uint32
- ClassContext uint32
- Locale uint32
- ServerInfo *COSERVERINFO
- Hwnd HWND
- }
- const (
- CLSCTX_INPROC_SERVER = 0x1
- CLSCTX_INPROC_HANDLER = 0x2
- CLSCTX_LOCAL_SERVER = 0x4
- CLSCTX_INPROC_SERVER16 = 0x8
- CLSCTX_REMOTE_SERVER = 0x10
- CLSCTX_INPROC_HANDLER16 = 0x20
- CLSCTX_RESERVED1 = 0x40
- CLSCTX_RESERVED2 = 0x80
- CLSCTX_RESERVED3 = 0x100
- CLSCTX_RESERVED4 = 0x200
- CLSCTX_NO_CODE_DOWNLOAD = 0x400
- CLSCTX_RESERVED5 = 0x800
- CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
- CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
- CLSCTX_NO_FAILURE_LOG = 0x4000
- CLSCTX_DISABLE_AAA = 0x8000
- CLSCTX_ENABLE_AAA = 0x10000
- CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
- CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000
- CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000
- CLSCTX_ENABLE_CLOAKING = 0x100000
- CLSCTX_APPCONTAINER = 0x400000
- CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000
- CLSCTX_PS_DLL = 0x80000000
- COINIT_MULTITHREADED = 0x0
- COINIT_APARTMENTTHREADED = 0x2
- COINIT_DISABLE_OLE1DDE = 0x4
- COINIT_SPEED_OVER_MEMORY = 0x8
- )
- // Flag for QueryFullProcessImageName.
- const PROCESS_NAME_NATIVE = 1
|