WinBase.h 196 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263
  1. /************************************************************************
  2. * *
  3. * winbase.h -- This module defines the 32-Bit Windows Base APIs *
  4. * *
  5. * Copyright (c) Microsoft Corp. All rights reserved. *
  6. * *
  7. ************************************************************************/
  8. #ifndef _WINBASE_
  9. #define _WINBASE_
  10. #if _MSC_VER > 1000
  11. #pragma once
  12. #endif
  13. #ifdef _MAC
  14. #include <macwin32.h>
  15. #endif //_MAC
  16. //
  17. // Define API decoration for direct importing of DLL references.
  18. //
  19. #if !defined(_ADVAPI32_)
  20. #define WINADVAPI DECLSPEC_IMPORT
  21. #else
  22. #define WINADVAPI
  23. #endif
  24. #if !defined(_KERNEL32_)
  25. #define WINBASEAPI DECLSPEC_IMPORT
  26. #else
  27. #define WINBASEAPI
  28. #endif
  29. #if !defined(_ZAWPROXY_)
  30. #define ZAWPROXYAPI DECLSPEC_IMPORT
  31. #else
  32. #define ZAWPROXYAPI
  33. #endif
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. /*
  38. * Compatibility macros
  39. */
  40. #define DefineHandleTable(w) ((w),TRUE)
  41. #define LimitEmsPages(dw)
  42. #define SetSwapAreaSize(w) (w)
  43. #define LockSegment(w) GlobalFix((HANDLE)(w))
  44. #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))
  45. #define GetCurrentTime() GetTickCount()
  46. #define Yield()
  47. #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
  48. #define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF)
  49. #define INVALID_SET_FILE_POINTER ((DWORD)-1)
  50. #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
  51. #define FILE_BEGIN 0
  52. #define FILE_CURRENT 1
  53. #define FILE_END 2
  54. #define TIME_ZONE_ID_INVALID ((DWORD)0xFFFFFFFF)
  55. #define WAIT_FAILED ((DWORD)0xFFFFFFFF)
  56. #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 )
  57. #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 )
  58. #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 )
  59. #define WAIT_IO_COMPLETION STATUS_USER_APC
  60. #define STILL_ACTIVE STATUS_PENDING
  61. #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
  62. #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
  63. #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
  64. #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
  65. #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
  66. #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
  67. #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
  68. #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
  69. #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
  70. #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
  71. #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
  72. #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
  73. #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
  74. #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
  75. #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
  76. #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
  77. #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
  78. #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
  79. #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
  80. #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
  81. #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
  82. #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
  83. #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
  84. #define MoveMemory RtlMoveMemory
  85. #define CopyMemory RtlCopyMemory
  86. #define FillMemory RtlFillMemory
  87. #define ZeroMemory RtlZeroMemory
  88. #define SecureZeroMemory RtlSecureZeroMemory
  89. //
  90. // File creation flags must start at the high end since they
  91. // are combined with the attributes
  92. //
  93. #define FILE_FLAG_WRITE_THROUGH 0x80000000
  94. #define FILE_FLAG_OVERLAPPED 0x40000000
  95. #define FILE_FLAG_NO_BUFFERING 0x20000000
  96. #define FILE_FLAG_RANDOM_ACCESS 0x10000000
  97. #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
  98. #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
  99. #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000
  100. #define FILE_FLAG_POSIX_SEMANTICS 0x01000000
  101. #define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000
  102. #define FILE_FLAG_OPEN_NO_RECALL 0x00100000
  103. #define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000
  104. #define CREATE_NEW 1
  105. #define CREATE_ALWAYS 2
  106. #define OPEN_EXISTING 3
  107. #define OPEN_ALWAYS 4
  108. #define TRUNCATE_EXISTING 5
  109. #if(_WIN32_WINNT >= 0x0400)
  110. //
  111. // Define possible return codes from the CopyFileEx callback routine
  112. //
  113. #define PROGRESS_CONTINUE 0
  114. #define PROGRESS_CANCEL 1
  115. #define PROGRESS_STOP 2
  116. #define PROGRESS_QUIET 3
  117. //
  118. // Define CopyFileEx callback routine state change values
  119. //
  120. #define CALLBACK_CHUNK_FINISHED 0x00000000
  121. #define CALLBACK_STREAM_SWITCH 0x00000001
  122. //
  123. // Define CopyFileEx option flags
  124. //
  125. #define COPY_FILE_FAIL_IF_EXISTS 0x00000001
  126. #define COPY_FILE_RESTARTABLE 0x00000002
  127. #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004
  128. #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008
  129. #endif /* _WIN32_WINNT >= 0x0400 */
  130. #if (_WIN32_WINNT >= 0x0500)
  131. //
  132. // Define ReplaceFile option flags
  133. //
  134. #define REPLACEFILE_WRITE_THROUGH 0x00000001
  135. #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002
  136. #endif // #if (_WIN32_WINNT >= 0x0500)
  137. //
  138. // Define the NamedPipe definitions
  139. //
  140. //
  141. // Define the dwOpenMode values for CreateNamedPipe
  142. //
  143. #define PIPE_ACCESS_INBOUND 0x00000001
  144. #define PIPE_ACCESS_OUTBOUND 0x00000002
  145. #define PIPE_ACCESS_DUPLEX 0x00000003
  146. //
  147. // Define the Named Pipe End flags for GetNamedPipeInfo
  148. //
  149. #define PIPE_CLIENT_END 0x00000000
  150. #define PIPE_SERVER_END 0x00000001
  151. //
  152. // Define the dwPipeMode values for CreateNamedPipe
  153. //
  154. #define PIPE_WAIT 0x00000000
  155. #define PIPE_NOWAIT 0x00000001
  156. #define PIPE_READMODE_BYTE 0x00000000
  157. #define PIPE_READMODE_MESSAGE 0x00000002
  158. #define PIPE_TYPE_BYTE 0x00000000
  159. #define PIPE_TYPE_MESSAGE 0x00000004
  160. //
  161. // Define the well known values for CreateNamedPipe nMaxInstances
  162. //
  163. #define PIPE_UNLIMITED_INSTANCES 255
  164. //
  165. // Define the Security Quality of Service bits to be passed
  166. // into CreateFile
  167. //
  168. #define SECURITY_ANONYMOUS ( SecurityAnonymous << 16 )
  169. #define SECURITY_IDENTIFICATION ( SecurityIdentification << 16 )
  170. #define SECURITY_IMPERSONATION ( SecurityImpersonation << 16 )
  171. #define SECURITY_DELEGATION ( SecurityDelegation << 16 )
  172. #define SECURITY_CONTEXT_TRACKING 0x00040000
  173. #define SECURITY_EFFECTIVE_ONLY 0x00080000
  174. #define SECURITY_SQOS_PRESENT 0x00100000
  175. #define SECURITY_VALID_SQOS_FLAGS 0x001F0000
  176. //
  177. // File structures
  178. //
  179. typedef struct _OVERLAPPED {
  180. ULONG_PTR Internal;
  181. ULONG_PTR InternalHigh;
  182. union {
  183. struct {
  184. DWORD Offset;
  185. DWORD OffsetHigh;
  186. };
  187. PVOID Pointer;
  188. };
  189. HANDLE hEvent;
  190. } OVERLAPPED, *LPOVERLAPPED;
  191. typedef struct _SECURITY_ATTRIBUTES {
  192. DWORD nLength;
  193. LPVOID lpSecurityDescriptor;
  194. BOOL bInheritHandle;
  195. } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
  196. typedef struct _PROCESS_INFORMATION {
  197. HANDLE hProcess;
  198. HANDLE hThread;
  199. DWORD dwProcessId;
  200. DWORD dwThreadId;
  201. } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
  202. //
  203. // File System time stamps are represented with the following structure:
  204. //
  205. typedef struct _FILETIME {
  206. DWORD dwLowDateTime;
  207. DWORD dwHighDateTime;
  208. } FILETIME, *PFILETIME, *LPFILETIME;
  209. //
  210. // System time is represented with the following structure:
  211. //
  212. typedef struct _SYSTEMTIME {
  213. WORD wYear;
  214. WORD wMonth;
  215. WORD wDayOfWeek;
  216. WORD wDay;
  217. WORD wHour;
  218. WORD wMinute;
  219. WORD wSecond;
  220. WORD wMilliseconds;
  221. } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
  222. typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)(
  223. LPVOID lpThreadParameter
  224. );
  225. typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
  226. #if(_WIN32_WINNT >= 0x0400)
  227. typedef VOID (WINAPI *PFIBER_START_ROUTINE)(
  228. LPVOID lpFiberParameter
  229. );
  230. typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
  231. #endif /* _WIN32_WINNT >= 0x0400 */
  232. typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
  233. typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
  234. typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
  235. typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
  236. typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
  237. typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
  238. WINBASEAPI
  239. PVOID
  240. WINAPI
  241. EncodePointer (
  242. PVOID Ptr
  243. );
  244. WINBASEAPI
  245. PVOID
  246. WINAPI
  247. DecodePointer (
  248. PVOID Ptr
  249. );
  250. WINBASEAPI
  251. PVOID
  252. WINAPI
  253. EncodeSystemPointer (
  254. PVOID Ptr
  255. );
  256. WINBASEAPI
  257. PVOID
  258. WINAPI
  259. DecodeSystemPointer (
  260. PVOID Ptr
  261. );
  262. #if defined(_X86_)
  263. typedef PLDT_ENTRY LPLDT_ENTRY;
  264. #else
  265. typedef LPVOID LPLDT_ENTRY;
  266. #endif
  267. #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
  268. #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
  269. //
  270. // Serial provider type.
  271. //
  272. #define SP_SERIALCOMM ((DWORD)0x00000001)
  273. //
  274. // Provider SubTypes
  275. //
  276. #define PST_UNSPECIFIED ((DWORD)0x00000000)
  277. #define PST_RS232 ((DWORD)0x00000001)
  278. #define PST_PARALLELPORT ((DWORD)0x00000002)
  279. #define PST_RS422 ((DWORD)0x00000003)
  280. #define PST_RS423 ((DWORD)0x00000004)
  281. #define PST_RS449 ((DWORD)0x00000005)
  282. #define PST_MODEM ((DWORD)0x00000006)
  283. #define PST_FAX ((DWORD)0x00000021)
  284. #define PST_SCANNER ((DWORD)0x00000022)
  285. #define PST_NETWORK_BRIDGE ((DWORD)0x00000100)
  286. #define PST_LAT ((DWORD)0x00000101)
  287. #define PST_TCPIP_TELNET ((DWORD)0x00000102)
  288. #define PST_X25 ((DWORD)0x00000103)
  289. //
  290. // Provider capabilities flags.
  291. //
  292. #define PCF_DTRDSR ((DWORD)0x0001)
  293. #define PCF_RTSCTS ((DWORD)0x0002)
  294. #define PCF_RLSD ((DWORD)0x0004)
  295. #define PCF_PARITY_CHECK ((DWORD)0x0008)
  296. #define PCF_XONXOFF ((DWORD)0x0010)
  297. #define PCF_SETXCHAR ((DWORD)0x0020)
  298. #define PCF_TOTALTIMEOUTS ((DWORD)0x0040)
  299. #define PCF_INTTIMEOUTS ((DWORD)0x0080)
  300. #define PCF_SPECIALCHARS ((DWORD)0x0100)
  301. #define PCF_16BITMODE ((DWORD)0x0200)
  302. //
  303. // Comm provider settable parameters.
  304. //
  305. #define SP_PARITY ((DWORD)0x0001)
  306. #define SP_BAUD ((DWORD)0x0002)
  307. #define SP_DATABITS ((DWORD)0x0004)
  308. #define SP_STOPBITS ((DWORD)0x0008)
  309. #define SP_HANDSHAKING ((DWORD)0x0010)
  310. #define SP_PARITY_CHECK ((DWORD)0x0020)
  311. #define SP_RLSD ((DWORD)0x0040)
  312. //
  313. // Settable baud rates in the provider.
  314. //
  315. #define BAUD_075 ((DWORD)0x00000001)
  316. #define BAUD_110 ((DWORD)0x00000002)
  317. #define BAUD_134_5 ((DWORD)0x00000004)
  318. #define BAUD_150 ((DWORD)0x00000008)
  319. #define BAUD_300 ((DWORD)0x00000010)
  320. #define BAUD_600 ((DWORD)0x00000020)
  321. #define BAUD_1200 ((DWORD)0x00000040)
  322. #define BAUD_1800 ((DWORD)0x00000080)
  323. #define BAUD_2400 ((DWORD)0x00000100)
  324. #define BAUD_4800 ((DWORD)0x00000200)
  325. #define BAUD_7200 ((DWORD)0x00000400)
  326. #define BAUD_9600 ((DWORD)0x00000800)
  327. #define BAUD_14400 ((DWORD)0x00001000)
  328. #define BAUD_19200 ((DWORD)0x00002000)
  329. #define BAUD_38400 ((DWORD)0x00004000)
  330. #define BAUD_56K ((DWORD)0x00008000)
  331. #define BAUD_128K ((DWORD)0x00010000)
  332. #define BAUD_115200 ((DWORD)0x00020000)
  333. #define BAUD_57600 ((DWORD)0x00040000)
  334. #define BAUD_USER ((DWORD)0x10000000)
  335. //
  336. // Settable Data Bits
  337. //
  338. #define DATABITS_5 ((WORD)0x0001)
  339. #define DATABITS_6 ((WORD)0x0002)
  340. #define DATABITS_7 ((WORD)0x0004)
  341. #define DATABITS_8 ((WORD)0x0008)
  342. #define DATABITS_16 ((WORD)0x0010)
  343. #define DATABITS_16X ((WORD)0x0020)
  344. //
  345. // Settable Stop and Parity bits.
  346. //
  347. #define STOPBITS_10 ((WORD)0x0001)
  348. #define STOPBITS_15 ((WORD)0x0002)
  349. #define STOPBITS_20 ((WORD)0x0004)
  350. #define PARITY_NONE ((WORD)0x0100)
  351. #define PARITY_ODD ((WORD)0x0200)
  352. #define PARITY_EVEN ((WORD)0x0400)
  353. #define PARITY_MARK ((WORD)0x0800)
  354. #define PARITY_SPACE ((WORD)0x1000)
  355. typedef struct _COMMPROP {
  356. WORD wPacketLength;
  357. WORD wPacketVersion;
  358. DWORD dwServiceMask;
  359. DWORD dwReserved1;
  360. DWORD dwMaxTxQueue;
  361. DWORD dwMaxRxQueue;
  362. DWORD dwMaxBaud;
  363. DWORD dwProvSubType;
  364. DWORD dwProvCapabilities;
  365. DWORD dwSettableParams;
  366. DWORD dwSettableBaud;
  367. WORD wSettableData;
  368. WORD wSettableStopParity;
  369. DWORD dwCurrentTxQueue;
  370. DWORD dwCurrentRxQueue;
  371. DWORD dwProvSpec1;
  372. DWORD dwProvSpec2;
  373. WCHAR wcProvChar[1];
  374. } COMMPROP,*LPCOMMPROP;
  375. //
  376. // Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength
  377. // is valid before a call to GetCommProperties().
  378. //
  379. #define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E)
  380. typedef struct _COMSTAT {
  381. DWORD fCtsHold : 1;
  382. DWORD fDsrHold : 1;
  383. DWORD fRlsdHold : 1;
  384. DWORD fXoffHold : 1;
  385. DWORD fXoffSent : 1;
  386. DWORD fEof : 1;
  387. DWORD fTxim : 1;
  388. DWORD fReserved : 25;
  389. DWORD cbInQue;
  390. DWORD cbOutQue;
  391. } COMSTAT, *LPCOMSTAT;
  392. //
  393. // DTR Control Flow Values.
  394. //
  395. #define DTR_CONTROL_DISABLE 0x00
  396. #define DTR_CONTROL_ENABLE 0x01
  397. #define DTR_CONTROL_HANDSHAKE 0x02
  398. //
  399. // RTS Control Flow Values
  400. //
  401. #define RTS_CONTROL_DISABLE 0x00
  402. #define RTS_CONTROL_ENABLE 0x01
  403. #define RTS_CONTROL_HANDSHAKE 0x02
  404. #define RTS_CONTROL_TOGGLE 0x03
  405. typedef struct _DCB {
  406. DWORD DCBlength; /* sizeof(DCB) */
  407. DWORD BaudRate; /* Baudrate at which running */
  408. DWORD fBinary: 1; /* Binary Mode (skip EOF check) */
  409. DWORD fParity: 1; /* Enable parity checking */
  410. DWORD fOutxCtsFlow:1; /* CTS handshaking on output */
  411. DWORD fOutxDsrFlow:1; /* DSR handshaking on output */
  412. DWORD fDtrControl:2; /* DTR Flow control */
  413. DWORD fDsrSensitivity:1; /* DSR Sensitivity */
  414. DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
  415. DWORD fOutX: 1; /* Enable output X-ON/X-OFF */
  416. DWORD fInX: 1; /* Enable input X-ON/X-OFF */
  417. DWORD fErrorChar: 1; /* Enable Err Replacement */
  418. DWORD fNull: 1; /* Enable Null stripping */
  419. DWORD fRtsControl:2; /* Rts Flow control */
  420. DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
  421. DWORD fDummy2:17; /* Reserved */
  422. WORD wReserved; /* Not currently used */
  423. WORD XonLim; /* Transmit X-ON threshold */
  424. WORD XoffLim; /* Transmit X-OFF threshold */
  425. BYTE ByteSize; /* Number of bits/byte, 4-8 */
  426. BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */
  427. BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */
  428. char XonChar; /* Tx and Rx X-ON character */
  429. char XoffChar; /* Tx and Rx X-OFF character */
  430. char ErrorChar; /* Error replacement char */
  431. char EofChar; /* End of Input character */
  432. char EvtChar; /* Received Event character */
  433. WORD wReserved1; /* Fill for now. */
  434. } DCB, *LPDCB;
  435. typedef struct _COMMTIMEOUTS {
  436. DWORD ReadIntervalTimeout; /* Maximum time between read chars. */
  437. DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */
  438. DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */
  439. DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */
  440. DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */
  441. } COMMTIMEOUTS,*LPCOMMTIMEOUTS;
  442. typedef struct _COMMCONFIG {
  443. DWORD dwSize; /* Size of the entire struct */
  444. WORD wVersion; /* version of the structure */
  445. WORD wReserved; /* alignment */
  446. DCB dcb; /* device control block */
  447. DWORD dwProviderSubType; /* ordinal value for identifying
  448. provider-defined data structure format*/
  449. DWORD dwProviderOffset; /* Specifies the offset of provider specific
  450. data field in bytes from the start */
  451. DWORD dwProviderSize; /* size of the provider-specific data field */
  452. WCHAR wcProviderData[1]; /* provider-specific data */
  453. } COMMCONFIG,*LPCOMMCONFIG;
  454. typedef struct _SYSTEM_INFO {
  455. union {
  456. DWORD dwOemId; // Obsolete field...do not use
  457. struct {
  458. WORD wProcessorArchitecture;
  459. WORD wReserved;
  460. };
  461. };
  462. DWORD dwPageSize;
  463. LPVOID lpMinimumApplicationAddress;
  464. LPVOID lpMaximumApplicationAddress;
  465. DWORD_PTR dwActiveProcessorMask;
  466. DWORD dwNumberOfProcessors;
  467. DWORD dwProcessorType;
  468. DWORD dwAllocationGranularity;
  469. WORD wProcessorLevel;
  470. WORD wProcessorRevision;
  471. } SYSTEM_INFO, *LPSYSTEM_INFO;
  472. //
  473. //
  474. #define FreeModule(hLibModule) FreeLibrary((hLibModule))
  475. #define MakeProcInstance(lpProc,hInstance) (lpProc)
  476. #define FreeProcInstance(lpProc) (lpProc)
  477. /* Global Memory Flags */
  478. #define GMEM_FIXED 0x0000
  479. #define GMEM_MOVEABLE 0x0002
  480. #define GMEM_NOCOMPACT 0x0010
  481. #define GMEM_NODISCARD 0x0020
  482. #define GMEM_ZEROINIT 0x0040
  483. #define GMEM_MODIFY 0x0080
  484. #define GMEM_DISCARDABLE 0x0100
  485. #define GMEM_NOT_BANKED 0x1000
  486. #define GMEM_SHARE 0x2000
  487. #define GMEM_DDESHARE 0x2000
  488. #define GMEM_NOTIFY 0x4000
  489. #define GMEM_LOWER GMEM_NOT_BANKED
  490. #define GMEM_VALID_FLAGS 0x7F72
  491. #define GMEM_INVALID_HANDLE 0x8000
  492. #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
  493. #define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
  494. #define GlobalLRUNewest( h ) ((HANDLE)(h))
  495. #define GlobalLRUOldest( h ) ((HANDLE)(h))
  496. #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE )
  497. /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */
  498. #define GMEM_DISCARDED 0x4000
  499. #define GMEM_LOCKCOUNT 0x00FF
  500. typedef struct _MEMORYSTATUS {
  501. DWORD dwLength;
  502. DWORD dwMemoryLoad;
  503. SIZE_T dwTotalPhys;
  504. SIZE_T dwAvailPhys;
  505. SIZE_T dwTotalPageFile;
  506. SIZE_T dwAvailPageFile;
  507. SIZE_T dwTotalVirtual;
  508. SIZE_T dwAvailVirtual;
  509. } MEMORYSTATUS, *LPMEMORYSTATUS;
  510. /* Local Memory Flags */
  511. #define LMEM_FIXED 0x0000
  512. #define LMEM_MOVEABLE 0x0002
  513. #define LMEM_NOCOMPACT 0x0010
  514. #define LMEM_NODISCARD 0x0020
  515. #define LMEM_ZEROINIT 0x0040
  516. #define LMEM_MODIFY 0x0080
  517. #define LMEM_DISCARDABLE 0x0F00
  518. #define LMEM_VALID_FLAGS 0x0F72
  519. #define LMEM_INVALID_HANDLE 0x8000
  520. #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
  521. #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
  522. #define NONZEROLHND (LMEM_MOVEABLE)
  523. #define NONZEROLPTR (LMEM_FIXED)
  524. #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE )
  525. /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */
  526. #define LMEM_DISCARDED 0x4000
  527. #define LMEM_LOCKCOUNT 0x00FF
  528. //
  529. // dwCreationFlag values
  530. //
  531. #define DEBUG_PROCESS 0x00000001
  532. #define DEBUG_ONLY_THIS_PROCESS 0x00000002
  533. #define CREATE_SUSPENDED 0x00000004
  534. #define DETACHED_PROCESS 0x00000008
  535. #define CREATE_NEW_CONSOLE 0x00000010
  536. #define NORMAL_PRIORITY_CLASS 0x00000020
  537. #define IDLE_PRIORITY_CLASS 0x00000040
  538. #define HIGH_PRIORITY_CLASS 0x00000080
  539. #define REALTIME_PRIORITY_CLASS 0x00000100
  540. #define CREATE_NEW_PROCESS_GROUP 0x00000200
  541. #define CREATE_UNICODE_ENVIRONMENT 0x00000400
  542. #define CREATE_SEPARATE_WOW_VDM 0x00000800
  543. #define CREATE_SHARED_WOW_VDM 0x00001000
  544. #define CREATE_FORCEDOS 0x00002000
  545. #define BELOW_NORMAL_PRIORITY_CLASS 0x00004000
  546. #define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000
  547. #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
  548. #define CREATE_BREAKAWAY_FROM_JOB 0x01000000
  549. #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x02000000
  550. #define CREATE_DEFAULT_ERROR_MODE 0x04000000
  551. #define CREATE_NO_WINDOW 0x08000000
  552. #define PROFILE_USER 0x10000000
  553. #define PROFILE_KERNEL 0x20000000
  554. #define PROFILE_SERVER 0x40000000
  555. #define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000
  556. #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
  557. #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1)
  558. #define THREAD_PRIORITY_NORMAL 0
  559. #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
  560. #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1)
  561. #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG)
  562. #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
  563. #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
  564. //
  565. // Debug APIs
  566. //
  567. #define EXCEPTION_DEBUG_EVENT 1
  568. #define CREATE_THREAD_DEBUG_EVENT 2
  569. #define CREATE_PROCESS_DEBUG_EVENT 3
  570. #define EXIT_THREAD_DEBUG_EVENT 4
  571. #define EXIT_PROCESS_DEBUG_EVENT 5
  572. #define LOAD_DLL_DEBUG_EVENT 6
  573. #define UNLOAD_DLL_DEBUG_EVENT 7
  574. #define OUTPUT_DEBUG_STRING_EVENT 8
  575. #define RIP_EVENT 9
  576. typedef struct _EXCEPTION_DEBUG_INFO {
  577. EXCEPTION_RECORD ExceptionRecord;
  578. DWORD dwFirstChance;
  579. } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
  580. typedef struct _CREATE_THREAD_DEBUG_INFO {
  581. HANDLE hThread;
  582. LPVOID lpThreadLocalBase;
  583. LPTHREAD_START_ROUTINE lpStartAddress;
  584. } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
  585. typedef struct _CREATE_PROCESS_DEBUG_INFO {
  586. HANDLE hFile;
  587. HANDLE hProcess;
  588. HANDLE hThread;
  589. LPVOID lpBaseOfImage;
  590. DWORD dwDebugInfoFileOffset;
  591. DWORD nDebugInfoSize;
  592. LPVOID lpThreadLocalBase;
  593. LPTHREAD_START_ROUTINE lpStartAddress;
  594. LPVOID lpImageName;
  595. WORD fUnicode;
  596. } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
  597. typedef struct _EXIT_THREAD_DEBUG_INFO {
  598. DWORD dwExitCode;
  599. } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
  600. typedef struct _EXIT_PROCESS_DEBUG_INFO {
  601. DWORD dwExitCode;
  602. } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
  603. typedef struct _LOAD_DLL_DEBUG_INFO {
  604. HANDLE hFile;
  605. LPVOID lpBaseOfDll;
  606. DWORD dwDebugInfoFileOffset;
  607. DWORD nDebugInfoSize;
  608. LPVOID lpImageName;
  609. WORD fUnicode;
  610. } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
  611. typedef struct _UNLOAD_DLL_DEBUG_INFO {
  612. LPVOID lpBaseOfDll;
  613. } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
  614. typedef struct _OUTPUT_DEBUG_STRING_INFO {
  615. LPSTR lpDebugStringData;
  616. WORD fUnicode;
  617. WORD nDebugStringLength;
  618. } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
  619. typedef struct _RIP_INFO {
  620. DWORD dwError;
  621. DWORD dwType;
  622. } RIP_INFO, *LPRIP_INFO;
  623. typedef struct _DEBUG_EVENT {
  624. DWORD dwDebugEventCode;
  625. DWORD dwProcessId;
  626. DWORD dwThreadId;
  627. union {
  628. EXCEPTION_DEBUG_INFO Exception;
  629. CREATE_THREAD_DEBUG_INFO CreateThread;
  630. CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
  631. EXIT_THREAD_DEBUG_INFO ExitThread;
  632. EXIT_PROCESS_DEBUG_INFO ExitProcess;
  633. LOAD_DLL_DEBUG_INFO LoadDll;
  634. UNLOAD_DLL_DEBUG_INFO UnloadDll;
  635. OUTPUT_DEBUG_STRING_INFO DebugString;
  636. RIP_INFO RipInfo;
  637. } u;
  638. } DEBUG_EVENT, *LPDEBUG_EVENT;
  639. #if !defined(MIDL_PASS)
  640. typedef PCONTEXT LPCONTEXT;
  641. typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
  642. typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
  643. #endif
  644. #define DRIVE_UNKNOWN 0
  645. #define DRIVE_NO_ROOT_DIR 1
  646. #define DRIVE_REMOVABLE 2
  647. #define DRIVE_FIXED 3
  648. #define DRIVE_REMOTE 4
  649. #define DRIVE_CDROM 5
  650. #define DRIVE_RAMDISK 6
  651. #ifndef _MAC
  652. #define GetFreeSpace(w) (0x100000L)
  653. #else
  654. WINBASEAPI DWORD WINAPI GetFreeSpace(UINT);
  655. #endif
  656. #define FILE_TYPE_UNKNOWN 0x0000
  657. #define FILE_TYPE_DISK 0x0001
  658. #define FILE_TYPE_CHAR 0x0002
  659. #define FILE_TYPE_PIPE 0x0003
  660. #define FILE_TYPE_REMOTE 0x8000
  661. #define STD_INPUT_HANDLE ((DWORD)-10)
  662. #define STD_OUTPUT_HANDLE ((DWORD)-11)
  663. #define STD_ERROR_HANDLE ((DWORD)-12)
  664. #define NOPARITY 0
  665. #define ODDPARITY 1
  666. #define EVENPARITY 2
  667. #define MARKPARITY 3
  668. #define SPACEPARITY 4
  669. #define ONESTOPBIT 0
  670. #define ONE5STOPBITS 1
  671. #define TWOSTOPBITS 2
  672. #define IGNORE 0 // Ignore signal
  673. #define INFINITE 0xFFFFFFFF // Infinite timeout
  674. //
  675. // Baud rates at which the communication device operates
  676. //
  677. #define CBR_110 110
  678. #define CBR_300 300
  679. #define CBR_600 600
  680. #define CBR_1200 1200
  681. #define CBR_2400 2400
  682. #define CBR_4800 4800
  683. #define CBR_9600 9600
  684. #define CBR_14400 14400
  685. #define CBR_19200 19200
  686. #define CBR_38400 38400
  687. #define CBR_56000 56000
  688. #define CBR_57600 57600
  689. #define CBR_115200 115200
  690. #define CBR_128000 128000
  691. #define CBR_256000 256000
  692. //
  693. // Error Flags
  694. //
  695. #define CE_RXOVER 0x0001 // Receive Queue overflow
  696. #define CE_OVERRUN 0x0002 // Receive Overrun Error
  697. #define CE_RXPARITY 0x0004 // Receive Parity Error
  698. #define CE_FRAME 0x0008 // Receive Framing error
  699. #define CE_BREAK 0x0010 // Break Detected
  700. #define CE_TXFULL 0x0100 // TX Queue is full
  701. #define CE_PTO 0x0200 // LPTx Timeout
  702. #define CE_IOE 0x0400 // LPTx I/O Error
  703. #define CE_DNS 0x0800 // LPTx Device not selected
  704. #define CE_OOP 0x1000 // LPTx Out-Of-Paper
  705. #define CE_MODE 0x8000 // Requested mode unsupported
  706. #define IE_BADID (-1) // Invalid or unsupported id
  707. #define IE_OPEN (-2) // Device Already Open
  708. #define IE_NOPEN (-3) // Device Not Open
  709. #define IE_MEMORY (-4) // Unable to allocate queues
  710. #define IE_DEFAULT (-5) // Error in default parameters
  711. #define IE_HARDWARE (-10) // Hardware Not Present
  712. #define IE_BYTESIZE (-11) // Illegal Byte Size
  713. #define IE_BAUDRATE (-12) // Unsupported BaudRate
  714. //
  715. // Events
  716. //
  717. #define EV_RXCHAR 0x0001 // Any Character received
  718. #define EV_RXFLAG 0x0002 // Received certain character
  719. #define EV_TXEMPTY 0x0004 // Transmitt Queue Empty
  720. #define EV_CTS 0x0008 // CTS changed state
  721. #define EV_DSR 0x0010 // DSR changed state
  722. #define EV_RLSD 0x0020 // RLSD changed state
  723. #define EV_BREAK 0x0040 // BREAK received
  724. #define EV_ERR 0x0080 // Line status error occurred
  725. #define EV_RING 0x0100 // Ring signal detected
  726. #define EV_PERR 0x0200 // Printer error occured
  727. #define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
  728. #define EV_EVENT1 0x0800 // Provider specific event 1
  729. #define EV_EVENT2 0x1000 // Provider specific event 2
  730. //
  731. // Escape Functions
  732. //
  733. #define SETXOFF 1 // Simulate XOFF received
  734. #define SETXON 2 // Simulate XON received
  735. #define SETRTS 3 // Set RTS high
  736. #define CLRRTS 4 // Set RTS low
  737. #define SETDTR 5 // Set DTR high
  738. #define CLRDTR 6 // Set DTR low
  739. #define RESETDEV 7 // Reset device if possible
  740. #define SETBREAK 8 // Set the device break line.
  741. #define CLRBREAK 9 // Clear the device break line.
  742. //
  743. // PURGE function flags.
  744. //
  745. #define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port.
  746. #define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port.
  747. #define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there.
  748. #define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there.
  749. #define LPTx 0x80 // Set if ID is for LPT device
  750. //
  751. // Modem Status Flags
  752. //
  753. #define MS_CTS_ON ((DWORD)0x0010)
  754. #define MS_DSR_ON ((DWORD)0x0020)
  755. #define MS_RING_ON ((DWORD)0x0040)
  756. #define MS_RLSD_ON ((DWORD)0x0080)
  757. //
  758. // WaitSoundState() Constants
  759. //
  760. #define S_QUEUEEMPTY 0
  761. #define S_THRESHOLD 1
  762. #define S_ALLTHRESHOLD 2
  763. //
  764. // Accent Modes
  765. //
  766. #define S_NORMAL 0
  767. #define S_LEGATO 1
  768. #define S_STACCATO 2
  769. //
  770. // SetSoundNoise() Sources
  771. //
  772. #define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss
  773. #define S_PERIOD1024 1 // Freq = N/1024
  774. #define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss
  775. #define S_PERIODVOICE 3 // Source is frequency from voice channel (3)
  776. #define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss
  777. #define S_WHITE1024 5 // Freq = N/1024
  778. #define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss
  779. #define S_WHITEVOICE 7 // Source is frequency from voice channel (3)
  780. #define S_SERDVNA (-1) // Device not available
  781. #define S_SEROFM (-2) // Out of memory
  782. #define S_SERMACT (-3) // Music active
  783. #define S_SERQFUL (-4) // Queue full
  784. #define S_SERBDNT (-5) // Invalid note
  785. #define S_SERDLN (-6) // Invalid note length
  786. #define S_SERDCC (-7) // Invalid note count
  787. #define S_SERDTP (-8) // Invalid tempo
  788. #define S_SERDVL (-9) // Invalid volume
  789. #define S_SERDMD (-10) // Invalid mode
  790. #define S_SERDSH (-11) // Invalid shape
  791. #define S_SERDPT (-12) // Invalid pitch
  792. #define S_SERDFQ (-13) // Invalid frequency
  793. #define S_SERDDR (-14) // Invalid duration
  794. #define S_SERDSR (-15) // Invalid source
  795. #define S_SERDST (-16) // Invalid state
  796. #define NMPWAIT_WAIT_FOREVER 0xffffffff
  797. #define NMPWAIT_NOWAIT 0x00000001
  798. #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
  799. #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
  800. #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
  801. #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
  802. #define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
  803. #define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
  804. #define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
  805. #define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION
  806. #define FILE_MAP_COPY SECTION_QUERY
  807. #define FILE_MAP_WRITE SECTION_MAP_WRITE
  808. #define FILE_MAP_READ SECTION_MAP_READ
  809. #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
  810. #define FILE_MAP_EXECUTE SECTION_MAP_EXECUTE_EXPLICIT // not included in FILE_MAP_ALL_ACCESS
  811. #define OF_READ 0x00000000
  812. #define OF_WRITE 0x00000001
  813. #define OF_READWRITE 0x00000002
  814. #define OF_SHARE_COMPAT 0x00000000
  815. #define OF_SHARE_EXCLUSIVE 0x00000010
  816. #define OF_SHARE_DENY_WRITE 0x00000020
  817. #define OF_SHARE_DENY_READ 0x00000030
  818. #define OF_SHARE_DENY_NONE 0x00000040
  819. #define OF_PARSE 0x00000100
  820. #define OF_DELETE 0x00000200
  821. #define OF_VERIFY 0x00000400
  822. #define OF_CANCEL 0x00000800
  823. #define OF_CREATE 0x00001000
  824. #define OF_PROMPT 0x00002000
  825. #define OF_EXIST 0x00004000
  826. #define OF_REOPEN 0x00008000
  827. #define OFS_MAXPATHNAME 128
  828. typedef struct _OFSTRUCT {
  829. BYTE cBytes;
  830. BYTE fFixedDisk;
  831. WORD nErrCode;
  832. WORD Reserved1;
  833. WORD Reserved2;
  834. CHAR szPathName[OFS_MAXPATHNAME];
  835. } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
  836. //
  837. // The Risc compilers support intrinsic functions for interlocked
  838. // increment, decrement, and exchange.
  839. //
  840. #ifndef NOWINBASEINTERLOCK
  841. #ifndef _NTOS_
  842. #if defined(_M_IA64) && !defined(RC_INVOKED)
  843. #define InterlockedIncrement _InterlockedIncrement
  844. #define InterlockedDecrement _InterlockedDecrement
  845. #define InterlockedExchange _InterlockedExchange
  846. #define InterlockedExchangeAdd _InterlockedExchangeAdd
  847. #define InterlockedCompareExchange _InterlockedCompareExchange
  848. #define InterlockedExchangePointer _InterlockedExchangePointer
  849. #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
  850. LONG
  851. __cdecl
  852. InterlockedIncrement(
  853. IN OUT LONG volatile *lpAddend
  854. );
  855. LONG
  856. __cdecl
  857. InterlockedDecrement(
  858. IN OUT LONG volatile *lpAddend
  859. );
  860. LONG
  861. __cdecl
  862. InterlockedExchange(
  863. IN OUT LONG volatile *Target,
  864. IN LONG Value
  865. );
  866. LONG
  867. __cdecl
  868. InterlockedExchangeAdd(
  869. IN OUT LONG volatile *Addend,
  870. IN LONG Value
  871. );
  872. LONG
  873. __cdecl
  874. InterlockedCompareExchange (
  875. IN OUT LONG volatile *Destination,
  876. IN LONG ExChange,
  877. IN LONG Comperand
  878. );
  879. PVOID
  880. __cdecl
  881. InterlockedExchangePointer(
  882. IN OUT PVOID volatile *Target,
  883. IN PVOID Value
  884. );
  885. PVOID
  886. __cdecl
  887. InterlockedCompareExchangePointer (
  888. IN OUT PVOID volatile *Destination,
  889. IN PVOID ExChange,
  890. IN PVOID Comperand
  891. );
  892. #pragma intrinsic(_InterlockedIncrement)
  893. #pragma intrinsic(_InterlockedDecrement)
  894. #pragma intrinsic(_InterlockedExchange)
  895. #pragma intrinsic(_InterlockedExchangeAdd)
  896. #pragma intrinsic(_InterlockedCompareExchange)
  897. #pragma intrinsic(_InterlockedExchangePointer)
  898. #pragma intrinsic(_InterlockedCompareExchangePointer)
  899. #elif defined(_M_AMD64) && !defined(RC_INVOKED)
  900. #define InterlockedIncrement _InterlockedIncrement
  901. #define InterlockedDecrement _InterlockedDecrement
  902. #define InterlockedExchange _InterlockedExchange
  903. #define InterlockedExchangeAdd _InterlockedExchangeAdd
  904. #define InterlockedCompareExchange _InterlockedCompareExchange
  905. #define InterlockedExchangePointer _InterlockedExchangePointer
  906. #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
  907. LONG
  908. InterlockedIncrement(
  909. IN OUT LONG volatile *Addend
  910. );
  911. LONG
  912. InterlockedDecrement(
  913. IN OUT LONG volatile *Addend
  914. );
  915. LONG
  916. InterlockedExchange(
  917. IN OUT LONG volatile *Target,
  918. IN LONG Value
  919. );
  920. LONG
  921. InterlockedExchangeAdd(
  922. IN OUT LONG volatile *Addend,
  923. IN LONG Value
  924. );
  925. LONG
  926. InterlockedCompareExchange (
  927. IN OUT LONG volatile *Destination,
  928. IN LONG ExChange,
  929. IN LONG Comperand
  930. );
  931. PVOID
  932. InterlockedCompareExchangePointer (
  933. IN OUT PVOID volatile *Destination,
  934. IN PVOID Exchange,
  935. IN PVOID Comperand
  936. );
  937. PVOID
  938. InterlockedExchangePointer(
  939. IN OUT PVOID volatile *Target,
  940. IN PVOID Value
  941. );
  942. #pragma intrinsic(_InterlockedIncrement)
  943. #pragma intrinsic(_InterlockedDecrement)
  944. #pragma intrinsic(_InterlockedExchange)
  945. #pragma intrinsic(_InterlockedExchangeAdd)
  946. #pragma intrinsic(_InterlockedCompareExchange)
  947. #pragma intrinsic(_InterlockedExchangePointer)
  948. #pragma intrinsic(_InterlockedCompareExchangePointer)
  949. #else // X86 interlocked definitions
  950. WINBASEAPI
  951. LONG
  952. WINAPI
  953. InterlockedIncrement(
  954. IN OUT LONG volatile *lpAddend
  955. );
  956. WINBASEAPI
  957. LONG
  958. WINAPI
  959. InterlockedDecrement(
  960. IN OUT LONG volatile *lpAddend
  961. );
  962. WINBASEAPI
  963. LONG
  964. WINAPI
  965. InterlockedExchange(
  966. IN OUT LONG volatile *Target,
  967. IN LONG Value
  968. );
  969. #define InterlockedExchangePointer(Target, Value) \
  970. (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
  971. WINBASEAPI
  972. LONG
  973. WINAPI
  974. InterlockedExchangeAdd(
  975. IN OUT LONG volatile *Addend,
  976. IN LONG Value
  977. );
  978. WINBASEAPI
  979. LONG
  980. WINAPI
  981. InterlockedCompareExchange (
  982. IN OUT LONG volatile *Destination,
  983. IN LONG Exchange,
  984. IN LONG Comperand
  985. );
  986. //
  987. // Use a function for C++ so X86 will generate the same errors as RISC.
  988. //
  989. #ifdef __cplusplus
  990. FORCEINLINE
  991. PVOID
  992. __cdecl
  993. __InlineInterlockedCompareExchangePointer (
  994. IN OUT PVOID volatile *Destination,
  995. IN PVOID ExChange,
  996. IN PVOID Comperand
  997. )
  998. {
  999. return((PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)Destination, (LONG)(LONG_PTR)ExChange, (LONG)(LONG_PTR)Comperand));
  1000. }
  1001. #define InterlockedCompareExchangePointer __InlineInterlockedCompareExchangePointer
  1002. #else
  1003. #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \
  1004. (PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)(Destination), (LONG)(LONG_PTR)(ExChange), (LONG)(LONG_PTR)(Comperand))
  1005. #endif /* __cplusplus */
  1006. #endif /* X86 | IA64 */
  1007. #if defined(_SLIST_HEADER_) && !defined(_NTOSP_)
  1008. WINBASEAPI
  1009. VOID
  1010. WINAPI
  1011. InitializeSListHead (
  1012. IN PSLIST_HEADER ListHead
  1013. );
  1014. WINBASEAPI
  1015. PSINGLE_LIST_ENTRY
  1016. WINAPI
  1017. InterlockedPopEntrySList (
  1018. IN PSLIST_HEADER ListHead
  1019. );
  1020. WINBASEAPI
  1021. PSINGLE_LIST_ENTRY
  1022. WINAPI
  1023. InterlockedPushEntrySList (
  1024. IN PSLIST_HEADER ListHead,
  1025. IN PSINGLE_LIST_ENTRY ListEntry
  1026. );
  1027. WINBASEAPI
  1028. PSINGLE_LIST_ENTRY
  1029. WINAPI
  1030. InterlockedFlushSList (
  1031. IN PSLIST_HEADER ListHead
  1032. );
  1033. WINBASEAPI
  1034. USHORT
  1035. WINAPI
  1036. QueryDepthSList (
  1037. IN PSLIST_HEADER ListHead
  1038. );
  1039. #endif /* _SLIST_HEADER_ */
  1040. #endif /* _NTOS_ */
  1041. #endif /* NOWINBASEINTERLOCK */
  1042. WINBASEAPI
  1043. BOOL
  1044. WINAPI
  1045. FreeResource(
  1046. IN HGLOBAL hResData
  1047. );
  1048. WINBASEAPI
  1049. LPVOID
  1050. WINAPI
  1051. LockResource(
  1052. IN HGLOBAL hResData
  1053. );
  1054. #define UnlockResource(hResData) ((hResData), 0)
  1055. #define MAXINTATOM 0xC000
  1056. #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))
  1057. #define INVALID_ATOM ((ATOM)0)
  1058. #ifndef _MAC
  1059. int
  1060. WINAPI
  1061. #else
  1062. int
  1063. CALLBACK
  1064. #endif
  1065. WinMain(
  1066. IN HINSTANCE hInstance,
  1067. IN HINSTANCE hPrevInstance,
  1068. IN LPSTR lpCmdLine,
  1069. IN int nShowCmd
  1070. );
  1071. WINBASEAPI
  1072. BOOL
  1073. WINAPI
  1074. FreeLibrary(
  1075. IN OUT HMODULE hLibModule
  1076. );
  1077. WINBASEAPI
  1078. DECLSPEC_NORETURN
  1079. VOID
  1080. WINAPI
  1081. FreeLibraryAndExitThread(
  1082. IN HMODULE hLibModule,
  1083. IN DWORD dwExitCode
  1084. );
  1085. WINBASEAPI
  1086. BOOL
  1087. WINAPI
  1088. DisableThreadLibraryCalls(
  1089. IN HMODULE hLibModule
  1090. );
  1091. WINBASEAPI
  1092. FARPROC
  1093. WINAPI
  1094. GetProcAddress(
  1095. IN HMODULE hModule,
  1096. IN LPCSTR lpProcName
  1097. );
  1098. WINBASEAPI
  1099. DWORD
  1100. WINAPI
  1101. GetVersion( VOID );
  1102. WINBASEAPI
  1103. HGLOBAL
  1104. WINAPI
  1105. GlobalAlloc(
  1106. IN UINT uFlags,
  1107. IN SIZE_T dwBytes
  1108. );
  1109. WINBASEAPI
  1110. HGLOBAL
  1111. WINAPI
  1112. GlobalReAlloc(
  1113. IN HGLOBAL hMem,
  1114. IN SIZE_T dwBytes,
  1115. IN UINT uFlags
  1116. );
  1117. WINBASEAPI
  1118. SIZE_T
  1119. WINAPI
  1120. GlobalSize(
  1121. IN HGLOBAL hMem
  1122. );
  1123. WINBASEAPI
  1124. UINT
  1125. WINAPI
  1126. GlobalFlags(
  1127. IN HGLOBAL hMem
  1128. );
  1129. WINBASEAPI
  1130. LPVOID
  1131. WINAPI
  1132. GlobalLock(
  1133. IN HGLOBAL hMem
  1134. );
  1135. //!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT)
  1136. WINBASEAPI
  1137. HGLOBAL
  1138. WINAPI
  1139. GlobalHandle(
  1140. IN LPCVOID pMem
  1141. );
  1142. WINBASEAPI
  1143. BOOL
  1144. WINAPI
  1145. GlobalUnlock(
  1146. IN HGLOBAL hMem
  1147. );
  1148. WINBASEAPI
  1149. HGLOBAL
  1150. WINAPI
  1151. GlobalFree(
  1152. IN HGLOBAL hMem
  1153. );
  1154. WINBASEAPI
  1155. SIZE_T
  1156. WINAPI
  1157. GlobalCompact(
  1158. IN DWORD dwMinFree
  1159. );
  1160. WINBASEAPI
  1161. VOID
  1162. WINAPI
  1163. GlobalFix(
  1164. IN HGLOBAL hMem
  1165. );
  1166. WINBASEAPI
  1167. VOID
  1168. WINAPI
  1169. GlobalUnfix(
  1170. IN HGLOBAL hMem
  1171. );
  1172. WINBASEAPI
  1173. LPVOID
  1174. WINAPI
  1175. GlobalWire(
  1176. IN HGLOBAL hMem
  1177. );
  1178. WINBASEAPI
  1179. BOOL
  1180. WINAPI
  1181. GlobalUnWire(
  1182. IN HGLOBAL hMem
  1183. );
  1184. WINBASEAPI
  1185. VOID
  1186. WINAPI
  1187. GlobalMemoryStatus(
  1188. IN OUT LPMEMORYSTATUS lpBuffer
  1189. );
  1190. typedef struct _MEMORYSTATUSEX {
  1191. DWORD dwLength;
  1192. DWORD dwMemoryLoad;
  1193. DWORDLONG ullTotalPhys;
  1194. DWORDLONG ullAvailPhys;
  1195. DWORDLONG ullTotalPageFile;
  1196. DWORDLONG ullAvailPageFile;
  1197. DWORDLONG ullTotalVirtual;
  1198. DWORDLONG ullAvailVirtual;
  1199. DWORDLONG ullAvailExtendedVirtual;
  1200. } MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
  1201. WINBASEAPI
  1202. BOOL
  1203. WINAPI
  1204. GlobalMemoryStatusEx(
  1205. IN OUT LPMEMORYSTATUSEX lpBuffer
  1206. );
  1207. WINBASEAPI
  1208. HLOCAL
  1209. WINAPI
  1210. LocalAlloc(
  1211. IN UINT uFlags,
  1212. IN SIZE_T uBytes
  1213. );
  1214. WINBASEAPI
  1215. HLOCAL
  1216. WINAPI
  1217. LocalReAlloc(
  1218. IN HLOCAL hMem,
  1219. IN SIZE_T uBytes,
  1220. IN UINT uFlags
  1221. );
  1222. WINBASEAPI
  1223. LPVOID
  1224. WINAPI
  1225. LocalLock(
  1226. IN HLOCAL hMem
  1227. );
  1228. WINBASEAPI
  1229. HLOCAL
  1230. WINAPI
  1231. LocalHandle(
  1232. IN LPCVOID pMem
  1233. );
  1234. WINBASEAPI
  1235. BOOL
  1236. WINAPI
  1237. LocalUnlock(
  1238. IN HLOCAL hMem
  1239. );
  1240. WINBASEAPI
  1241. SIZE_T
  1242. WINAPI
  1243. LocalSize(
  1244. IN HLOCAL hMem
  1245. );
  1246. WINBASEAPI
  1247. UINT
  1248. WINAPI
  1249. LocalFlags(
  1250. IN HLOCAL hMem
  1251. );
  1252. WINBASEAPI
  1253. HLOCAL
  1254. WINAPI
  1255. LocalFree(
  1256. IN HLOCAL hMem
  1257. );
  1258. WINBASEAPI
  1259. SIZE_T
  1260. WINAPI
  1261. LocalShrink(
  1262. IN HLOCAL hMem,
  1263. IN UINT cbNewSize
  1264. );
  1265. WINBASEAPI
  1266. SIZE_T
  1267. WINAPI
  1268. LocalCompact(
  1269. IN UINT uMinFree
  1270. );
  1271. WINBASEAPI
  1272. BOOL
  1273. WINAPI
  1274. FlushInstructionCache(
  1275. IN HANDLE hProcess,
  1276. IN LPCVOID lpBaseAddress,
  1277. IN SIZE_T dwSize
  1278. );
  1279. WINBASEAPI
  1280. LPVOID
  1281. WINAPI
  1282. VirtualAlloc(
  1283. IN LPVOID lpAddress,
  1284. IN SIZE_T dwSize,
  1285. IN DWORD flAllocationType,
  1286. IN DWORD flProtect
  1287. );
  1288. WINBASEAPI
  1289. BOOL
  1290. WINAPI
  1291. VirtualFree(
  1292. IN LPVOID lpAddress,
  1293. IN SIZE_T dwSize,
  1294. IN DWORD dwFreeType
  1295. );
  1296. WINBASEAPI
  1297. BOOL
  1298. WINAPI
  1299. VirtualProtect(
  1300. IN LPVOID lpAddress,
  1301. IN SIZE_T dwSize,
  1302. IN DWORD flNewProtect,
  1303. OUT PDWORD lpflOldProtect
  1304. );
  1305. WINBASEAPI
  1306. SIZE_T
  1307. WINAPI
  1308. VirtualQuery(
  1309. IN LPCVOID lpAddress,
  1310. OUT PMEMORY_BASIC_INFORMATION lpBuffer,
  1311. IN SIZE_T dwLength
  1312. );
  1313. WINBASEAPI
  1314. LPVOID
  1315. WINAPI
  1316. VirtualAllocEx(
  1317. IN HANDLE hProcess,
  1318. IN LPVOID lpAddress,
  1319. IN SIZE_T dwSize,
  1320. IN DWORD flAllocationType,
  1321. IN DWORD flProtect
  1322. );
  1323. WINBASEAPI
  1324. UINT
  1325. WINAPI
  1326. GetWriteWatch(
  1327. IN DWORD dwFlags,
  1328. IN PVOID lpBaseAddress,
  1329. IN SIZE_T dwRegionSize,
  1330. IN OUT PVOID *lpAddresses,
  1331. IN OUT PULONG_PTR lpdwCount,
  1332. OUT PULONG lpdwGranularity
  1333. );
  1334. WINBASEAPI
  1335. UINT
  1336. WINAPI
  1337. ResetWriteWatch(
  1338. IN LPVOID lpBaseAddress,
  1339. IN SIZE_T dwRegionSize
  1340. );
  1341. WINBASEAPI
  1342. BOOL
  1343. WINAPI
  1344. VirtualFreeEx(
  1345. IN HANDLE hProcess,
  1346. IN LPVOID lpAddress,
  1347. IN SIZE_T dwSize,
  1348. IN DWORD dwFreeType
  1349. );
  1350. WINBASEAPI
  1351. BOOL
  1352. WINAPI
  1353. VirtualProtectEx(
  1354. IN HANDLE hProcess,
  1355. IN LPVOID lpAddress,
  1356. IN SIZE_T dwSize,
  1357. IN DWORD flNewProtect,
  1358. OUT PDWORD lpflOldProtect
  1359. );
  1360. WINBASEAPI
  1361. SIZE_T
  1362. WINAPI
  1363. VirtualQueryEx(
  1364. IN HANDLE hProcess,
  1365. IN LPCVOID lpAddress,
  1366. OUT PMEMORY_BASIC_INFORMATION lpBuffer,
  1367. IN SIZE_T dwLength
  1368. );
  1369. WINBASEAPI
  1370. HANDLE
  1371. WINAPI
  1372. HeapCreate(
  1373. IN DWORD flOptions,
  1374. IN SIZE_T dwInitialSize,
  1375. IN SIZE_T dwMaximumSize
  1376. );
  1377. WINBASEAPI
  1378. BOOL
  1379. WINAPI
  1380. HeapDestroy(
  1381. IN OUT HANDLE hHeap
  1382. );
  1383. WINBASEAPI
  1384. LPVOID
  1385. WINAPI
  1386. HeapAlloc(
  1387. IN HANDLE hHeap,
  1388. IN DWORD dwFlags,
  1389. IN SIZE_T dwBytes
  1390. );
  1391. WINBASEAPI
  1392. LPVOID
  1393. WINAPI
  1394. HeapReAlloc(
  1395. IN HANDLE hHeap,
  1396. IN DWORD dwFlags,
  1397. IN LPVOID lpMem,
  1398. IN SIZE_T dwBytes
  1399. );
  1400. WINBASEAPI
  1401. BOOL
  1402. WINAPI
  1403. HeapFree(
  1404. IN HANDLE hHeap,
  1405. IN DWORD dwFlags,
  1406. IN LPVOID lpMem
  1407. );
  1408. WINBASEAPI
  1409. SIZE_T
  1410. WINAPI
  1411. HeapSize(
  1412. IN HANDLE hHeap,
  1413. IN DWORD dwFlags,
  1414. IN LPCVOID lpMem
  1415. );
  1416. WINBASEAPI
  1417. BOOL
  1418. WINAPI
  1419. HeapValidate(
  1420. IN HANDLE hHeap,
  1421. IN DWORD dwFlags,
  1422. IN LPCVOID lpMem
  1423. );
  1424. WINBASEAPI
  1425. SIZE_T
  1426. WINAPI
  1427. HeapCompact(
  1428. IN HANDLE hHeap,
  1429. IN DWORD dwFlags
  1430. );
  1431. WINBASEAPI
  1432. HANDLE
  1433. WINAPI
  1434. GetProcessHeap( VOID );
  1435. WINBASEAPI
  1436. DWORD
  1437. WINAPI
  1438. GetProcessHeaps(
  1439. IN DWORD NumberOfHeaps,
  1440. OUT PHANDLE ProcessHeaps
  1441. );
  1442. typedef struct _PROCESS_HEAP_ENTRY {
  1443. PVOID lpData;
  1444. DWORD cbData;
  1445. BYTE cbOverhead;
  1446. BYTE iRegionIndex;
  1447. WORD wFlags;
  1448. union {
  1449. struct {
  1450. HANDLE hMem;
  1451. DWORD dwReserved[ 3 ];
  1452. } Block;
  1453. struct {
  1454. DWORD dwCommittedSize;
  1455. DWORD dwUnCommittedSize;
  1456. LPVOID lpFirstBlock;
  1457. LPVOID lpLastBlock;
  1458. } Region;
  1459. };
  1460. } PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
  1461. #define PROCESS_HEAP_REGION 0x0001
  1462. #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002
  1463. #define PROCESS_HEAP_ENTRY_BUSY 0x0004
  1464. #define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010
  1465. #define PROCESS_HEAP_ENTRY_DDESHARE 0x0020
  1466. WINBASEAPI
  1467. BOOL
  1468. WINAPI
  1469. HeapLock(
  1470. IN HANDLE hHeap
  1471. );
  1472. WINBASEAPI
  1473. BOOL
  1474. WINAPI
  1475. HeapUnlock(
  1476. IN HANDLE hHeap
  1477. );
  1478. WINBASEAPI
  1479. BOOL
  1480. WINAPI
  1481. HeapWalk(
  1482. IN HANDLE hHeap,
  1483. IN OUT LPPROCESS_HEAP_ENTRY lpEntry
  1484. );
  1485. WINBASEAPI
  1486. BOOL
  1487. WINAPI
  1488. HeapSetInformation (
  1489. IN PVOID HeapHandle,
  1490. IN HEAP_INFORMATION_CLASS HeapInformationClass,
  1491. IN PVOID HeapInformation OPTIONAL,
  1492. IN SIZE_T HeapInformationLength OPTIONAL
  1493. );
  1494. WINBASEAPI
  1495. BOOL
  1496. WINAPI
  1497. HeapQueryInformation (
  1498. IN PVOID HeapHandle,
  1499. IN HEAP_INFORMATION_CLASS HeapInformationClass,
  1500. OUT PVOID HeapInformation OPTIONAL,
  1501. IN SIZE_T HeapInformationLength OPTIONAL,
  1502. OUT PSIZE_T ReturnLength OPTIONAL
  1503. );
  1504. // GetBinaryType return values.
  1505. #define SCS_32BIT_BINARY 0
  1506. #define SCS_DOS_BINARY 1
  1507. #define SCS_WOW_BINARY 2
  1508. #define SCS_PIF_BINARY 3
  1509. #define SCS_POSIX_BINARY 4
  1510. #define SCS_OS216_BINARY 5
  1511. #define SCS_64BIT_BINARY 6
  1512. #if defined(_WIN64)
  1513. # define SCS_THIS_PLATFORM_BINARY SCS_64BIT_BINARY
  1514. #else
  1515. # define SCS_THIS_PLATFORM_BINARY SCS_32BIT_BINARY
  1516. #endif
  1517. WINBASEAPI
  1518. BOOL
  1519. WINAPI
  1520. GetBinaryTypeA(
  1521. IN LPCSTR lpApplicationName,
  1522. OUT LPDWORD lpBinaryType
  1523. );
  1524. WINBASEAPI
  1525. BOOL
  1526. WINAPI
  1527. GetBinaryTypeW(
  1528. IN LPCWSTR lpApplicationName,
  1529. OUT LPDWORD lpBinaryType
  1530. );
  1531. #ifdef UNICODE
  1532. #define GetBinaryType GetBinaryTypeW
  1533. #else
  1534. #define GetBinaryType GetBinaryTypeA
  1535. #endif // !UNICODE
  1536. WINBASEAPI
  1537. DWORD
  1538. WINAPI
  1539. GetShortPathNameA(
  1540. IN LPCSTR lpszLongPath,
  1541. OUT LPSTR lpszShortPath,
  1542. IN DWORD cchBuffer
  1543. );
  1544. WINBASEAPI
  1545. DWORD
  1546. WINAPI
  1547. GetShortPathNameW(
  1548. IN LPCWSTR lpszLongPath,
  1549. OUT LPWSTR lpszShortPath,
  1550. IN DWORD cchBuffer
  1551. );
  1552. #ifdef UNICODE
  1553. #define GetShortPathName GetShortPathNameW
  1554. #else
  1555. #define GetShortPathName GetShortPathNameA
  1556. #endif // !UNICODE
  1557. WINBASEAPI
  1558. DWORD
  1559. WINAPI
  1560. GetLongPathNameA(
  1561. IN LPCSTR lpszShortPath,
  1562. OUT LPSTR lpszLongPath,
  1563. IN DWORD cchBuffer
  1564. );
  1565. WINBASEAPI
  1566. DWORD
  1567. WINAPI
  1568. GetLongPathNameW(
  1569. IN LPCWSTR lpszShortPath,
  1570. OUT LPWSTR lpszLongPath,
  1571. IN DWORD cchBuffer
  1572. );
  1573. #ifdef UNICODE
  1574. #define GetLongPathName GetLongPathNameW
  1575. #else
  1576. #define GetLongPathName GetLongPathNameA
  1577. #endif // !UNICODE
  1578. WINBASEAPI
  1579. BOOL
  1580. WINAPI
  1581. GetProcessAffinityMask(
  1582. IN HANDLE hProcess,
  1583. OUT PDWORD_PTR lpProcessAffinityMask,
  1584. OUT PDWORD_PTR lpSystemAffinityMask
  1585. );
  1586. WINBASEAPI
  1587. BOOL
  1588. WINAPI
  1589. SetProcessAffinityMask(
  1590. IN HANDLE hProcess,
  1591. IN DWORD_PTR dwProcessAffinityMask
  1592. );
  1593. #if _WIN32_WINNT >= 0x0501
  1594. WINBASEAPI
  1595. BOOL
  1596. WINAPI
  1597. GetProcessHandleCount(
  1598. IN HANDLE hProcess,
  1599. OUT PDWORD pdwHandleCount
  1600. );
  1601. #endif // (_WIN32_WINNT >= 0x0501)
  1602. WINBASEAPI
  1603. BOOL
  1604. WINAPI
  1605. GetProcessTimes(
  1606. IN HANDLE hProcess,
  1607. OUT LPFILETIME lpCreationTime,
  1608. OUT LPFILETIME lpExitTime,
  1609. OUT LPFILETIME lpKernelTime,
  1610. OUT LPFILETIME lpUserTime
  1611. );
  1612. WINBASEAPI
  1613. BOOL
  1614. WINAPI
  1615. GetProcessIoCounters(
  1616. IN HANDLE hProcess,
  1617. OUT PIO_COUNTERS lpIoCounters
  1618. );
  1619. WINBASEAPI
  1620. BOOL
  1621. WINAPI
  1622. GetProcessWorkingSetSize(
  1623. IN HANDLE hProcess,
  1624. OUT PSIZE_T lpMinimumWorkingSetSize,
  1625. OUT PSIZE_T lpMaximumWorkingSetSize
  1626. );
  1627. WINBASEAPI
  1628. BOOL
  1629. WINAPI
  1630. SetProcessWorkingSetSize(
  1631. IN HANDLE hProcess,
  1632. IN SIZE_T dwMinimumWorkingSetSize,
  1633. IN SIZE_T dwMaximumWorkingSetSize
  1634. );
  1635. WINBASEAPI
  1636. HANDLE
  1637. WINAPI
  1638. OpenProcess(
  1639. IN DWORD dwDesiredAccess,
  1640. IN BOOL bInheritHandle,
  1641. IN DWORD dwProcessId
  1642. );
  1643. WINBASEAPI
  1644. HANDLE
  1645. WINAPI
  1646. GetCurrentProcess(
  1647. VOID
  1648. );
  1649. WINBASEAPI
  1650. DWORD
  1651. WINAPI
  1652. GetCurrentProcessId(
  1653. VOID
  1654. );
  1655. #if _WIN32_WINNT >= 0x0501
  1656. WINBASEAPI
  1657. DWORD
  1658. WINAPI
  1659. GetProcessId(
  1660. HANDLE Process
  1661. );
  1662. #endif // (_WIN32_WINNT >= 0x0501)
  1663. WINBASEAPI
  1664. DECLSPEC_NORETURN
  1665. VOID
  1666. WINAPI
  1667. ExitProcess(
  1668. IN UINT uExitCode
  1669. );
  1670. WINBASEAPI
  1671. BOOL
  1672. WINAPI
  1673. TerminateProcess(
  1674. IN HANDLE hProcess,
  1675. IN UINT uExitCode
  1676. );
  1677. WINBASEAPI
  1678. BOOL
  1679. WINAPI
  1680. GetExitCodeProcess(
  1681. IN HANDLE hProcess,
  1682. OUT LPDWORD lpExitCode
  1683. );
  1684. WINBASEAPI
  1685. VOID
  1686. WINAPI
  1687. FatalExit(
  1688. IN int ExitCode
  1689. );
  1690. WINBASEAPI
  1691. LPSTR
  1692. WINAPI
  1693. GetEnvironmentStrings(
  1694. VOID
  1695. );
  1696. WINBASEAPI
  1697. LPWSTR
  1698. WINAPI
  1699. GetEnvironmentStringsW(
  1700. VOID
  1701. );
  1702. #ifdef UNICODE
  1703. #define GetEnvironmentStrings GetEnvironmentStringsW
  1704. #else
  1705. #define GetEnvironmentStringsA GetEnvironmentStrings
  1706. #endif // !UNICODE
  1707. WINBASEAPI
  1708. BOOL
  1709. WINAPI
  1710. FreeEnvironmentStringsA(
  1711. IN LPSTR
  1712. );
  1713. WINBASEAPI
  1714. BOOL
  1715. WINAPI
  1716. FreeEnvironmentStringsW(
  1717. IN LPWSTR
  1718. );
  1719. #ifdef UNICODE
  1720. #define FreeEnvironmentStrings FreeEnvironmentStringsW
  1721. #else
  1722. #define FreeEnvironmentStrings FreeEnvironmentStringsA
  1723. #endif // !UNICODE
  1724. WINBASEAPI
  1725. VOID
  1726. WINAPI
  1727. RaiseException(
  1728. IN DWORD dwExceptionCode,
  1729. IN DWORD dwExceptionFlags,
  1730. IN DWORD nNumberOfArguments,
  1731. IN CONST ULONG_PTR *lpArguments
  1732. );
  1733. WINBASEAPI
  1734. LONG
  1735. WINAPI
  1736. UnhandledExceptionFilter(
  1737. IN struct _EXCEPTION_POINTERS *ExceptionInfo
  1738. );
  1739. typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
  1740. struct _EXCEPTION_POINTERS *ExceptionInfo
  1741. );
  1742. typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
  1743. WINBASEAPI
  1744. LPTOP_LEVEL_EXCEPTION_FILTER
  1745. WINAPI
  1746. SetUnhandledExceptionFilter(
  1747. IN LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
  1748. );
  1749. #if(_WIN32_WINNT >= 0x0400)
  1750. WINBASEAPI
  1751. LPVOID
  1752. WINAPI
  1753. CreateFiber(
  1754. IN SIZE_T dwStackSize,
  1755. IN LPFIBER_START_ROUTINE lpStartAddress,
  1756. IN LPVOID lpParameter
  1757. );
  1758. WINBASEAPI
  1759. LPVOID
  1760. WINAPI
  1761. CreateFiberEx(
  1762. SIZE_T dwStackCommitSize,
  1763. SIZE_T dwStackReserveSize,
  1764. DWORD dwFlags,
  1765. LPFIBER_START_ROUTINE lpStartAddress,
  1766. LPVOID lpParameter
  1767. );
  1768. WINBASEAPI
  1769. VOID
  1770. WINAPI
  1771. DeleteFiber(
  1772. IN LPVOID lpFiber
  1773. );
  1774. WINBASEAPI
  1775. LPVOID
  1776. WINAPI
  1777. ConvertThreadToFiber(
  1778. IN LPVOID lpParameter
  1779. );
  1780. WINBASEAPI
  1781. BOOL
  1782. WINAPI
  1783. ConvertFiberToThread(
  1784. VOID
  1785. );
  1786. WINBASEAPI
  1787. VOID
  1788. WINAPI
  1789. SwitchToFiber(
  1790. IN LPVOID lpFiber
  1791. );
  1792. WINBASEAPI
  1793. BOOL
  1794. WINAPI
  1795. SwitchToThread(
  1796. VOID
  1797. );
  1798. #endif /* _WIN32_WINNT >= 0x0400 */
  1799. WINBASEAPI
  1800. HANDLE
  1801. WINAPI
  1802. CreateThread(
  1803. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  1804. IN SIZE_T dwStackSize,
  1805. IN LPTHREAD_START_ROUTINE lpStartAddress,
  1806. IN LPVOID lpParameter,
  1807. IN DWORD dwCreationFlags,
  1808. OUT LPDWORD lpThreadId
  1809. );
  1810. WINBASEAPI
  1811. HANDLE
  1812. WINAPI
  1813. CreateRemoteThread(
  1814. IN HANDLE hProcess,
  1815. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  1816. IN SIZE_T dwStackSize,
  1817. IN LPTHREAD_START_ROUTINE lpStartAddress,
  1818. IN LPVOID lpParameter,
  1819. IN DWORD dwCreationFlags,
  1820. OUT LPDWORD lpThreadId
  1821. );
  1822. WINBASEAPI
  1823. HANDLE
  1824. WINAPI
  1825. GetCurrentThread(
  1826. VOID
  1827. );
  1828. WINBASEAPI
  1829. DWORD
  1830. WINAPI
  1831. GetCurrentThreadId(
  1832. VOID
  1833. );
  1834. WINBASEAPI
  1835. DWORD_PTR
  1836. WINAPI
  1837. SetThreadAffinityMask(
  1838. IN HANDLE hThread,
  1839. IN DWORD_PTR dwThreadAffinityMask
  1840. );
  1841. #if(_WIN32_WINNT >= 0x0400)
  1842. WINBASEAPI
  1843. DWORD
  1844. WINAPI
  1845. SetThreadIdealProcessor(
  1846. IN HANDLE hThread,
  1847. IN DWORD dwIdealProcessor
  1848. );
  1849. #endif /* _WIN32_WINNT >= 0x0400 */
  1850. WINBASEAPI
  1851. BOOL
  1852. WINAPI
  1853. SetProcessPriorityBoost(
  1854. IN HANDLE hProcess,
  1855. IN BOOL bDisablePriorityBoost
  1856. );
  1857. WINBASEAPI
  1858. BOOL
  1859. WINAPI
  1860. GetProcessPriorityBoost(
  1861. IN HANDLE hProcess,
  1862. OUT PBOOL pDisablePriorityBoost
  1863. );
  1864. WINBASEAPI
  1865. BOOL
  1866. WINAPI
  1867. RequestWakeupLatency(
  1868. IN LATENCY_TIME latency
  1869. );
  1870. WINBASEAPI
  1871. BOOL
  1872. WINAPI
  1873. IsSystemResumeAutomatic(
  1874. VOID
  1875. );
  1876. WINBASEAPI
  1877. HANDLE
  1878. WINAPI
  1879. OpenThread(
  1880. DWORD dwDesiredAccess,
  1881. BOOL bInheritHandle,
  1882. DWORD dwThreadId
  1883. );
  1884. WINBASEAPI
  1885. BOOL
  1886. WINAPI
  1887. SetThreadPriority(
  1888. IN HANDLE hThread,
  1889. IN int nPriority
  1890. );
  1891. WINBASEAPI
  1892. BOOL
  1893. WINAPI
  1894. SetThreadPriorityBoost(
  1895. IN HANDLE hThread,
  1896. IN BOOL bDisablePriorityBoost
  1897. );
  1898. WINBASEAPI
  1899. BOOL
  1900. WINAPI
  1901. GetThreadPriorityBoost(
  1902. IN HANDLE hThread,
  1903. OUT PBOOL pDisablePriorityBoost
  1904. );
  1905. WINBASEAPI
  1906. int
  1907. WINAPI
  1908. GetThreadPriority(
  1909. IN HANDLE hThread
  1910. );
  1911. WINBASEAPI
  1912. BOOL
  1913. WINAPI
  1914. GetThreadTimes(
  1915. IN HANDLE hThread,
  1916. OUT LPFILETIME lpCreationTime,
  1917. OUT LPFILETIME lpExitTime,
  1918. OUT LPFILETIME lpKernelTime,
  1919. OUT LPFILETIME lpUserTime
  1920. );
  1921. #if _WIN32_WINNT >= 0x0501
  1922. WINBASEAPI
  1923. BOOL
  1924. WINAPI
  1925. GetThreadIOPendingFlag(
  1926. IN HANDLE hThread,
  1927. OUT PBOOL lpIOIsPending
  1928. );
  1929. #endif // (_WIN32_WINNT >= 0x0501)
  1930. WINBASEAPI
  1931. DECLSPEC_NORETURN
  1932. VOID
  1933. WINAPI
  1934. ExitThread(
  1935. IN DWORD dwExitCode
  1936. );
  1937. WINBASEAPI
  1938. BOOL
  1939. WINAPI
  1940. TerminateThread(
  1941. IN OUT HANDLE hThread,
  1942. IN DWORD dwExitCode
  1943. );
  1944. WINBASEAPI
  1945. BOOL
  1946. WINAPI
  1947. GetExitCodeThread(
  1948. IN HANDLE hThread,
  1949. OUT LPDWORD lpExitCode
  1950. );
  1951. WINBASEAPI
  1952. BOOL
  1953. WINAPI
  1954. GetThreadSelectorEntry(
  1955. IN HANDLE hThread,
  1956. IN DWORD dwSelector,
  1957. OUT LPLDT_ENTRY lpSelectorEntry
  1958. );
  1959. WINBASEAPI
  1960. EXECUTION_STATE
  1961. WINAPI
  1962. SetThreadExecutionState(
  1963. IN EXECUTION_STATE esFlags
  1964. );
  1965. WINBASEAPI
  1966. DWORD
  1967. WINAPI
  1968. GetLastError(
  1969. VOID
  1970. );
  1971. WINBASEAPI
  1972. VOID
  1973. WINAPI
  1974. SetLastError(
  1975. IN DWORD dwErrCode
  1976. );
  1977. #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ERROR" is a bit long.
  1978. //#if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_RESTORE_LAST_ERROR)
  1979. #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR)
  1980. WINBASEAPI
  1981. VOID
  1982. WINAPI
  1983. RestoreLastError(
  1984. IN DWORD dwErrCode
  1985. );
  1986. typedef VOID (WINAPI* PRESTORE_LAST_ERROR)(DWORD);
  1987. #define RESTORE_LAST_ERROR_NAME_A "RestoreLastError"
  1988. #define RESTORE_LAST_ERROR_NAME_W L"RestoreLastError"
  1989. #define RESTORE_LAST_ERROR_NAME TEXT("RestoreLastError")
  1990. #endif
  1991. #endif
  1992. #define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING)
  1993. WINBASEAPI
  1994. BOOL
  1995. WINAPI
  1996. GetOverlappedResult(
  1997. IN HANDLE hFile,
  1998. IN LPOVERLAPPED lpOverlapped,
  1999. OUT LPDWORD lpNumberOfBytesTransferred,
  2000. IN BOOL bWait
  2001. );
  2002. WINBASEAPI
  2003. HANDLE
  2004. WINAPI
  2005. CreateIoCompletionPort(
  2006. IN HANDLE FileHandle,
  2007. IN HANDLE ExistingCompletionPort,
  2008. IN ULONG_PTR CompletionKey,
  2009. IN DWORD NumberOfConcurrentThreads
  2010. );
  2011. WINBASEAPI
  2012. BOOL
  2013. WINAPI
  2014. GetQueuedCompletionStatus(
  2015. IN HANDLE CompletionPort,
  2016. OUT LPDWORD lpNumberOfBytesTransferred,
  2017. OUT PULONG_PTR lpCompletionKey,
  2018. OUT LPOVERLAPPED *lpOverlapped,
  2019. IN DWORD dwMilliseconds
  2020. );
  2021. WINBASEAPI
  2022. BOOL
  2023. WINAPI
  2024. PostQueuedCompletionStatus(
  2025. IN HANDLE CompletionPort,
  2026. IN DWORD dwNumberOfBytesTransferred,
  2027. IN ULONG_PTR dwCompletionKey,
  2028. IN LPOVERLAPPED lpOverlapped
  2029. );
  2030. #define SEM_FAILCRITICALERRORS 0x0001
  2031. #define SEM_NOGPFAULTERRORBOX 0x0002
  2032. #define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
  2033. #define SEM_NOOPENFILEERRORBOX 0x8000
  2034. WINBASEAPI
  2035. UINT
  2036. WINAPI
  2037. SetErrorMode(
  2038. IN UINT uMode
  2039. );
  2040. WINBASEAPI
  2041. BOOL
  2042. WINAPI
  2043. ReadProcessMemory(
  2044. IN HANDLE hProcess,
  2045. IN LPCVOID lpBaseAddress,
  2046. OUT LPVOID lpBuffer,
  2047. IN SIZE_T nSize,
  2048. OUT SIZE_T * lpNumberOfBytesRead
  2049. );
  2050. WINBASEAPI
  2051. BOOL
  2052. WINAPI
  2053. WriteProcessMemory(
  2054. IN HANDLE hProcess,
  2055. IN LPVOID lpBaseAddress,
  2056. IN LPCVOID lpBuffer,
  2057. IN SIZE_T nSize,
  2058. OUT SIZE_T * lpNumberOfBytesWritten
  2059. );
  2060. #if !defined(MIDL_PASS)
  2061. WINBASEAPI
  2062. BOOL
  2063. WINAPI
  2064. GetThreadContext(
  2065. IN HANDLE hThread,
  2066. IN OUT LPCONTEXT lpContext
  2067. );
  2068. WINBASEAPI
  2069. BOOL
  2070. WINAPI
  2071. SetThreadContext(
  2072. IN HANDLE hThread,
  2073. IN CONST CONTEXT *lpContext
  2074. );
  2075. #endif
  2076. WINBASEAPI
  2077. DWORD
  2078. WINAPI
  2079. SuspendThread(
  2080. IN HANDLE hThread
  2081. );
  2082. WINBASEAPI
  2083. DWORD
  2084. WINAPI
  2085. ResumeThread(
  2086. IN HANDLE hThread
  2087. );
  2088. #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  2089. typedef
  2090. VOID
  2091. (APIENTRY *PAPCFUNC)(
  2092. ULONG_PTR dwParam
  2093. );
  2094. WINBASEAPI
  2095. DWORD
  2096. WINAPI
  2097. QueueUserAPC(
  2098. IN PAPCFUNC pfnAPC,
  2099. IN HANDLE hThread,
  2100. IN ULONG_PTR dwData
  2101. );
  2102. #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */
  2103. #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  2104. WINBASEAPI
  2105. BOOL
  2106. WINAPI
  2107. IsDebuggerPresent(
  2108. VOID
  2109. );
  2110. #endif
  2111. #if _WIN32_WINNT >= 0x0501
  2112. WINBASEAPI
  2113. BOOL
  2114. WINAPI
  2115. CheckRemoteDebuggerPresent(
  2116. IN HANDLE hProcess,
  2117. OUT PBOOL pbDebuggerPresent
  2118. );
  2119. #endif // (_WIN32_WINNT >= 0x0501)
  2120. WINBASEAPI
  2121. VOID
  2122. WINAPI
  2123. DebugBreak(
  2124. VOID
  2125. );
  2126. WINBASEAPI
  2127. BOOL
  2128. WINAPI
  2129. WaitForDebugEvent(
  2130. IN LPDEBUG_EVENT lpDebugEvent,
  2131. IN DWORD dwMilliseconds
  2132. );
  2133. WINBASEAPI
  2134. BOOL
  2135. WINAPI
  2136. ContinueDebugEvent(
  2137. IN DWORD dwProcessId,
  2138. IN DWORD dwThreadId,
  2139. IN DWORD dwContinueStatus
  2140. );
  2141. WINBASEAPI
  2142. BOOL
  2143. WINAPI
  2144. DebugActiveProcess(
  2145. IN DWORD dwProcessId
  2146. );
  2147. WINBASEAPI
  2148. BOOL
  2149. WINAPI
  2150. DebugActiveProcessStop(
  2151. IN DWORD dwProcessId
  2152. );
  2153. WINBASEAPI
  2154. BOOL
  2155. WINAPI
  2156. DebugSetProcessKillOnExit(
  2157. IN BOOL KillOnExit
  2158. );
  2159. WINBASEAPI
  2160. BOOL
  2161. WINAPI
  2162. DebugBreakProcess (
  2163. IN HANDLE Process
  2164. );
  2165. WINBASEAPI
  2166. VOID
  2167. WINAPI
  2168. InitializeCriticalSection(
  2169. OUT LPCRITICAL_SECTION lpCriticalSection
  2170. );
  2171. WINBASEAPI
  2172. VOID
  2173. WINAPI
  2174. EnterCriticalSection(
  2175. IN OUT LPCRITICAL_SECTION lpCriticalSection
  2176. );
  2177. WINBASEAPI
  2178. VOID
  2179. WINAPI
  2180. LeaveCriticalSection(
  2181. IN OUT LPCRITICAL_SECTION lpCriticalSection
  2182. );
  2183. #if (_WIN32_WINNT >= 0x0403)
  2184. WINBASEAPI
  2185. BOOL
  2186. WINAPI
  2187. InitializeCriticalSectionAndSpinCount(
  2188. IN OUT LPCRITICAL_SECTION lpCriticalSection,
  2189. IN DWORD dwSpinCount
  2190. );
  2191. WINBASEAPI
  2192. DWORD
  2193. WINAPI
  2194. SetCriticalSectionSpinCount(
  2195. IN OUT LPCRITICAL_SECTION lpCriticalSection,
  2196. IN DWORD dwSpinCount
  2197. );
  2198. #endif
  2199. #if(_WIN32_WINNT >= 0x0400)
  2200. WINBASEAPI
  2201. BOOL
  2202. WINAPI
  2203. TryEnterCriticalSection(
  2204. IN OUT LPCRITICAL_SECTION lpCriticalSection
  2205. );
  2206. #endif /* _WIN32_WINNT >= 0x0400 */
  2207. WINBASEAPI
  2208. VOID
  2209. WINAPI
  2210. DeleteCriticalSection(
  2211. IN OUT LPCRITICAL_SECTION lpCriticalSection
  2212. );
  2213. WINBASEAPI
  2214. BOOL
  2215. WINAPI
  2216. SetEvent(
  2217. IN HANDLE hEvent
  2218. );
  2219. WINBASEAPI
  2220. BOOL
  2221. WINAPI
  2222. ResetEvent(
  2223. IN HANDLE hEvent
  2224. );
  2225. WINBASEAPI
  2226. BOOL
  2227. WINAPI
  2228. PulseEvent(
  2229. IN HANDLE hEvent
  2230. );
  2231. WINBASEAPI
  2232. BOOL
  2233. WINAPI
  2234. ReleaseSemaphore(
  2235. IN HANDLE hSemaphore,
  2236. IN LONG lReleaseCount,
  2237. OUT LPLONG lpPreviousCount
  2238. );
  2239. WINBASEAPI
  2240. BOOL
  2241. WINAPI
  2242. ReleaseMutex(
  2243. IN HANDLE hMutex
  2244. );
  2245. WINBASEAPI
  2246. DWORD
  2247. WINAPI
  2248. WaitForSingleObject(
  2249. IN HANDLE hHandle,
  2250. IN DWORD dwMilliseconds
  2251. );
  2252. WINBASEAPI
  2253. DWORD
  2254. WINAPI
  2255. WaitForMultipleObjects(
  2256. IN DWORD nCount,
  2257. IN CONST HANDLE *lpHandles,
  2258. IN BOOL bWaitAll,
  2259. IN DWORD dwMilliseconds
  2260. );
  2261. WINBASEAPI
  2262. VOID
  2263. WINAPI
  2264. Sleep(
  2265. IN DWORD dwMilliseconds
  2266. );
  2267. WINBASEAPI
  2268. HGLOBAL
  2269. WINAPI
  2270. LoadResource(
  2271. IN HMODULE hModule,
  2272. IN HRSRC hResInfo
  2273. );
  2274. WINBASEAPI
  2275. DWORD
  2276. WINAPI
  2277. SizeofResource(
  2278. IN HMODULE hModule,
  2279. IN HRSRC hResInfo
  2280. );
  2281. WINBASEAPI
  2282. ATOM
  2283. WINAPI
  2284. GlobalDeleteAtom(
  2285. IN ATOM nAtom
  2286. );
  2287. WINBASEAPI
  2288. BOOL
  2289. WINAPI
  2290. InitAtomTable(
  2291. IN DWORD nSize
  2292. );
  2293. WINBASEAPI
  2294. ATOM
  2295. WINAPI
  2296. DeleteAtom(
  2297. IN ATOM nAtom
  2298. );
  2299. WINBASEAPI
  2300. UINT
  2301. WINAPI
  2302. SetHandleCount(
  2303. IN UINT uNumber
  2304. );
  2305. WINBASEAPI
  2306. DWORD
  2307. WINAPI
  2308. GetLogicalDrives(
  2309. VOID
  2310. );
  2311. WINBASEAPI
  2312. BOOL
  2313. WINAPI
  2314. LockFile(
  2315. IN HANDLE hFile,
  2316. IN DWORD dwFileOffsetLow,
  2317. IN DWORD dwFileOffsetHigh,
  2318. IN DWORD nNumberOfBytesToLockLow,
  2319. IN DWORD nNumberOfBytesToLockHigh
  2320. );
  2321. WINBASEAPI
  2322. BOOL
  2323. WINAPI
  2324. UnlockFile(
  2325. IN HANDLE hFile,
  2326. IN DWORD dwFileOffsetLow,
  2327. IN DWORD dwFileOffsetHigh,
  2328. IN DWORD nNumberOfBytesToUnlockLow,
  2329. IN DWORD nNumberOfBytesToUnlockHigh
  2330. );
  2331. WINBASEAPI
  2332. BOOL
  2333. WINAPI
  2334. LockFileEx(
  2335. IN HANDLE hFile,
  2336. IN DWORD dwFlags,
  2337. IN DWORD dwReserved,
  2338. IN DWORD nNumberOfBytesToLockLow,
  2339. IN DWORD nNumberOfBytesToLockHigh,
  2340. IN LPOVERLAPPED lpOverlapped
  2341. );
  2342. #define LOCKFILE_FAIL_IMMEDIATELY 0x00000001
  2343. #define LOCKFILE_EXCLUSIVE_LOCK 0x00000002
  2344. WINBASEAPI
  2345. BOOL
  2346. WINAPI
  2347. UnlockFileEx(
  2348. IN HANDLE hFile,
  2349. IN DWORD dwReserved,
  2350. IN DWORD nNumberOfBytesToUnlockLow,
  2351. IN DWORD nNumberOfBytesToUnlockHigh,
  2352. IN LPOVERLAPPED lpOverlapped
  2353. );
  2354. typedef struct _BY_HANDLE_FILE_INFORMATION {
  2355. DWORD dwFileAttributes;
  2356. FILETIME ftCreationTime;
  2357. FILETIME ftLastAccessTime;
  2358. FILETIME ftLastWriteTime;
  2359. DWORD dwVolumeSerialNumber;
  2360. DWORD nFileSizeHigh;
  2361. DWORD nFileSizeLow;
  2362. DWORD nNumberOfLinks;
  2363. DWORD nFileIndexHigh;
  2364. DWORD nFileIndexLow;
  2365. } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
  2366. WINBASEAPI
  2367. BOOL
  2368. WINAPI
  2369. GetFileInformationByHandle(
  2370. IN HANDLE hFile,
  2371. OUT LPBY_HANDLE_FILE_INFORMATION lpFileInformation
  2372. );
  2373. WINBASEAPI
  2374. DWORD
  2375. WINAPI
  2376. GetFileType(
  2377. IN HANDLE hFile
  2378. );
  2379. WINBASEAPI
  2380. DWORD
  2381. WINAPI
  2382. GetFileSize(
  2383. IN HANDLE hFile,
  2384. OUT LPDWORD lpFileSizeHigh
  2385. );
  2386. WINBASEAPI
  2387. BOOL
  2388. WINAPI
  2389. GetFileSizeEx(
  2390. HANDLE hFile,
  2391. PLARGE_INTEGER lpFileSize
  2392. );
  2393. WINBASEAPI
  2394. HANDLE
  2395. WINAPI
  2396. GetStdHandle(
  2397. IN DWORD nStdHandle
  2398. );
  2399. WINBASEAPI
  2400. BOOL
  2401. WINAPI
  2402. SetStdHandle(
  2403. IN DWORD nStdHandle,
  2404. IN HANDLE hHandle
  2405. );
  2406. WINBASEAPI
  2407. BOOL
  2408. WINAPI
  2409. WriteFile(
  2410. IN HANDLE hFile,
  2411. IN LPCVOID lpBuffer,
  2412. IN DWORD nNumberOfBytesToWrite,
  2413. OUT LPDWORD lpNumberOfBytesWritten,
  2414. IN LPOVERLAPPED lpOverlapped
  2415. );
  2416. WINBASEAPI
  2417. BOOL
  2418. WINAPI
  2419. ReadFile(
  2420. IN HANDLE hFile,
  2421. OUT LPVOID lpBuffer,
  2422. IN DWORD nNumberOfBytesToRead,
  2423. OUT LPDWORD lpNumberOfBytesRead,
  2424. IN LPOVERLAPPED lpOverlapped
  2425. );
  2426. WINBASEAPI
  2427. BOOL
  2428. WINAPI
  2429. FlushFileBuffers(
  2430. IN HANDLE hFile
  2431. );
  2432. WINBASEAPI
  2433. BOOL
  2434. WINAPI
  2435. DeviceIoControl(
  2436. IN HANDLE hDevice,
  2437. IN DWORD dwIoControlCode,
  2438. IN LPVOID lpInBuffer,
  2439. IN DWORD nInBufferSize,
  2440. OUT LPVOID lpOutBuffer,
  2441. IN DWORD nOutBufferSize,
  2442. OUT LPDWORD lpBytesReturned,
  2443. IN LPOVERLAPPED lpOverlapped
  2444. );
  2445. WINBASEAPI
  2446. BOOL
  2447. WINAPI
  2448. RequestDeviceWakeup(
  2449. IN HANDLE hDevice
  2450. );
  2451. WINBASEAPI
  2452. BOOL
  2453. WINAPI
  2454. CancelDeviceWakeupRequest(
  2455. IN HANDLE hDevice
  2456. );
  2457. WINBASEAPI
  2458. BOOL
  2459. WINAPI
  2460. GetDevicePowerState(
  2461. IN HANDLE hDevice,
  2462. OUT BOOL *pfOn
  2463. );
  2464. WINBASEAPI
  2465. BOOL
  2466. WINAPI
  2467. SetMessageWaitingIndicator(
  2468. IN HANDLE hMsgIndicator,
  2469. IN ULONG ulMsgCount
  2470. );
  2471. WINBASEAPI
  2472. BOOL
  2473. WINAPI
  2474. SetEndOfFile(
  2475. IN HANDLE hFile
  2476. );
  2477. WINBASEAPI
  2478. DWORD
  2479. WINAPI
  2480. SetFilePointer(
  2481. IN HANDLE hFile,
  2482. IN LONG lDistanceToMove,
  2483. IN PLONG lpDistanceToMoveHigh,
  2484. IN DWORD dwMoveMethod
  2485. );
  2486. WINBASEAPI
  2487. BOOL
  2488. WINAPI
  2489. SetFilePointerEx(
  2490. HANDLE hFile,
  2491. LARGE_INTEGER liDistanceToMove,
  2492. PLARGE_INTEGER lpNewFilePointer,
  2493. DWORD dwMoveMethod
  2494. );
  2495. WINBASEAPI
  2496. BOOL
  2497. WINAPI
  2498. FindClose(
  2499. IN OUT HANDLE hFindFile
  2500. );
  2501. WINBASEAPI
  2502. BOOL
  2503. WINAPI
  2504. GetFileTime(
  2505. IN HANDLE hFile,
  2506. OUT LPFILETIME lpCreationTime,
  2507. OUT LPFILETIME lpLastAccessTime,
  2508. OUT LPFILETIME lpLastWriteTime
  2509. );
  2510. WINBASEAPI
  2511. BOOL
  2512. WINAPI
  2513. SetFileTime(
  2514. IN HANDLE hFile,
  2515. IN CONST FILETIME *lpCreationTime,
  2516. IN CONST FILETIME *lpLastAccessTime,
  2517. IN CONST FILETIME *lpLastWriteTime
  2518. );
  2519. WINBASEAPI
  2520. BOOL
  2521. WINAPI
  2522. SetFileValidData(
  2523. IN HANDLE hFile,
  2524. IN LONGLONG ValidDataLength
  2525. );
  2526. WINBASEAPI
  2527. BOOL
  2528. WINAPI
  2529. SetFileShortNameA(
  2530. IN HANDLE hFile,
  2531. IN LPCSTR lpShortName
  2532. );
  2533. WINBASEAPI
  2534. BOOL
  2535. WINAPI
  2536. SetFileShortNameW(
  2537. IN HANDLE hFile,
  2538. IN LPCWSTR lpShortName
  2539. );
  2540. #ifdef UNICODE
  2541. #define SetFileShortName SetFileShortNameW
  2542. #else
  2543. #define SetFileShortName SetFileShortNameA
  2544. #endif // !UNICODE
  2545. WINBASEAPI
  2546. BOOL
  2547. WINAPI
  2548. CloseHandle(
  2549. IN OUT HANDLE hObject
  2550. );
  2551. WINBASEAPI
  2552. BOOL
  2553. WINAPI
  2554. DuplicateHandle(
  2555. IN HANDLE hSourceProcessHandle,
  2556. IN HANDLE hSourceHandle,
  2557. IN HANDLE hTargetProcessHandle,
  2558. OUT LPHANDLE lpTargetHandle,
  2559. IN DWORD dwDesiredAccess,
  2560. IN BOOL bInheritHandle,
  2561. IN DWORD dwOptions
  2562. );
  2563. WINBASEAPI
  2564. BOOL
  2565. WINAPI
  2566. GetHandleInformation(
  2567. IN HANDLE hObject,
  2568. OUT LPDWORD lpdwFlags
  2569. );
  2570. WINBASEAPI
  2571. BOOL
  2572. WINAPI
  2573. SetHandleInformation(
  2574. IN HANDLE hObject,
  2575. IN DWORD dwMask,
  2576. IN DWORD dwFlags
  2577. );
  2578. #define HANDLE_FLAG_INHERIT 0x00000001
  2579. #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002
  2580. #define HINSTANCE_ERROR 32
  2581. WINBASEAPI
  2582. DWORD
  2583. WINAPI
  2584. LoadModule(
  2585. IN LPCSTR lpModuleName,
  2586. IN LPVOID lpParameterBlock
  2587. );
  2588. WINBASEAPI
  2589. UINT
  2590. WINAPI
  2591. WinExec(
  2592. IN LPCSTR lpCmdLine,
  2593. IN UINT uCmdShow
  2594. );
  2595. WINBASEAPI
  2596. BOOL
  2597. WINAPI
  2598. ClearCommBreak(
  2599. IN HANDLE hFile
  2600. );
  2601. WINBASEAPI
  2602. BOOL
  2603. WINAPI
  2604. ClearCommError(
  2605. IN HANDLE hFile,
  2606. OUT LPDWORD lpErrors,
  2607. OUT LPCOMSTAT lpStat
  2608. );
  2609. WINBASEAPI
  2610. BOOL
  2611. WINAPI
  2612. SetupComm(
  2613. IN HANDLE hFile,
  2614. IN DWORD dwInQueue,
  2615. IN DWORD dwOutQueue
  2616. );
  2617. WINBASEAPI
  2618. BOOL
  2619. WINAPI
  2620. EscapeCommFunction(
  2621. IN HANDLE hFile,
  2622. IN DWORD dwFunc
  2623. );
  2624. WINBASEAPI
  2625. BOOL
  2626. WINAPI
  2627. GetCommConfig(
  2628. IN HANDLE hCommDev,
  2629. OUT LPCOMMCONFIG lpCC,
  2630. IN OUT LPDWORD lpdwSize
  2631. );
  2632. WINBASEAPI
  2633. BOOL
  2634. WINAPI
  2635. GetCommMask(
  2636. IN HANDLE hFile,
  2637. OUT LPDWORD lpEvtMask
  2638. );
  2639. WINBASEAPI
  2640. BOOL
  2641. WINAPI
  2642. GetCommProperties(
  2643. IN HANDLE hFile,
  2644. OUT LPCOMMPROP lpCommProp
  2645. );
  2646. WINBASEAPI
  2647. BOOL
  2648. WINAPI
  2649. GetCommModemStatus(
  2650. IN HANDLE hFile,
  2651. OUT LPDWORD lpModemStat
  2652. );
  2653. WINBASEAPI
  2654. BOOL
  2655. WINAPI
  2656. GetCommState(
  2657. IN HANDLE hFile,
  2658. OUT LPDCB lpDCB
  2659. );
  2660. WINBASEAPI
  2661. BOOL
  2662. WINAPI
  2663. GetCommTimeouts(
  2664. IN HANDLE hFile,
  2665. OUT LPCOMMTIMEOUTS lpCommTimeouts
  2666. );
  2667. WINBASEAPI
  2668. BOOL
  2669. WINAPI
  2670. PurgeComm(
  2671. IN HANDLE hFile,
  2672. IN DWORD dwFlags
  2673. );
  2674. WINBASEAPI
  2675. BOOL
  2676. WINAPI
  2677. SetCommBreak(
  2678. IN HANDLE hFile
  2679. );
  2680. WINBASEAPI
  2681. BOOL
  2682. WINAPI
  2683. SetCommConfig(
  2684. IN HANDLE hCommDev,
  2685. IN LPCOMMCONFIG lpCC,
  2686. IN DWORD dwSize
  2687. );
  2688. WINBASEAPI
  2689. BOOL
  2690. WINAPI
  2691. SetCommMask(
  2692. IN HANDLE hFile,
  2693. IN DWORD dwEvtMask
  2694. );
  2695. WINBASEAPI
  2696. BOOL
  2697. WINAPI
  2698. SetCommState(
  2699. IN HANDLE hFile,
  2700. IN LPDCB lpDCB
  2701. );
  2702. WINBASEAPI
  2703. BOOL
  2704. WINAPI
  2705. SetCommTimeouts(
  2706. IN HANDLE hFile,
  2707. IN LPCOMMTIMEOUTS lpCommTimeouts
  2708. );
  2709. WINBASEAPI
  2710. BOOL
  2711. WINAPI
  2712. TransmitCommChar(
  2713. IN HANDLE hFile,
  2714. IN char cChar
  2715. );
  2716. WINBASEAPI
  2717. BOOL
  2718. WINAPI
  2719. WaitCommEvent(
  2720. IN HANDLE hFile,
  2721. OUT LPDWORD lpEvtMask,
  2722. IN LPOVERLAPPED lpOverlapped
  2723. );
  2724. WINBASEAPI
  2725. DWORD
  2726. WINAPI
  2727. SetTapePosition(
  2728. IN HANDLE hDevice,
  2729. IN DWORD dwPositionMethod,
  2730. IN DWORD dwPartition,
  2731. IN DWORD dwOffsetLow,
  2732. IN DWORD dwOffsetHigh,
  2733. IN BOOL bImmediate
  2734. );
  2735. WINBASEAPI
  2736. DWORD
  2737. WINAPI
  2738. GetTapePosition(
  2739. IN HANDLE hDevice,
  2740. IN DWORD dwPositionType,
  2741. OUT LPDWORD lpdwPartition,
  2742. OUT LPDWORD lpdwOffsetLow,
  2743. OUT LPDWORD lpdwOffsetHigh
  2744. );
  2745. WINBASEAPI
  2746. DWORD
  2747. WINAPI
  2748. PrepareTape(
  2749. IN HANDLE hDevice,
  2750. IN DWORD dwOperation,
  2751. IN BOOL bImmediate
  2752. );
  2753. WINBASEAPI
  2754. DWORD
  2755. WINAPI
  2756. EraseTape(
  2757. IN HANDLE hDevice,
  2758. IN DWORD dwEraseType,
  2759. IN BOOL bImmediate
  2760. );
  2761. WINBASEAPI
  2762. DWORD
  2763. WINAPI
  2764. CreateTapePartition(
  2765. IN HANDLE hDevice,
  2766. IN DWORD dwPartitionMethod,
  2767. IN DWORD dwCount,
  2768. IN DWORD dwSize
  2769. );
  2770. WINBASEAPI
  2771. DWORD
  2772. WINAPI
  2773. WriteTapemark(
  2774. IN HANDLE hDevice,
  2775. IN DWORD dwTapemarkType,
  2776. IN DWORD dwTapemarkCount,
  2777. IN BOOL bImmediate
  2778. );
  2779. WINBASEAPI
  2780. DWORD
  2781. WINAPI
  2782. GetTapeStatus(
  2783. IN HANDLE hDevice
  2784. );
  2785. WINBASEAPI
  2786. DWORD
  2787. WINAPI
  2788. GetTapeParameters(
  2789. IN HANDLE hDevice,
  2790. IN DWORD dwOperation,
  2791. OUT LPDWORD lpdwSize,
  2792. OUT LPVOID lpTapeInformation
  2793. );
  2794. #define GET_TAPE_MEDIA_INFORMATION 0
  2795. #define GET_TAPE_DRIVE_INFORMATION 1
  2796. WINBASEAPI
  2797. DWORD
  2798. WINAPI
  2799. SetTapeParameters(
  2800. IN HANDLE hDevice,
  2801. IN DWORD dwOperation,
  2802. IN LPVOID lpTapeInformation
  2803. );
  2804. #define SET_TAPE_MEDIA_INFORMATION 0
  2805. #define SET_TAPE_DRIVE_INFORMATION 1
  2806. WINBASEAPI
  2807. BOOL
  2808. WINAPI
  2809. Beep(
  2810. IN DWORD dwFreq,
  2811. IN DWORD dwDuration
  2812. );
  2813. WINBASEAPI
  2814. int
  2815. WINAPI
  2816. MulDiv(
  2817. IN int nNumber,
  2818. IN int nNumerator,
  2819. IN int nDenominator
  2820. );
  2821. WINBASEAPI
  2822. VOID
  2823. WINAPI
  2824. GetSystemTime(
  2825. OUT LPSYSTEMTIME lpSystemTime
  2826. );
  2827. WINBASEAPI
  2828. VOID
  2829. WINAPI
  2830. GetSystemTimeAsFileTime(
  2831. OUT LPFILETIME lpSystemTimeAsFileTime
  2832. );
  2833. WINBASEAPI
  2834. BOOL
  2835. WINAPI
  2836. SetSystemTime(
  2837. IN CONST SYSTEMTIME *lpSystemTime
  2838. );
  2839. WINBASEAPI
  2840. VOID
  2841. WINAPI
  2842. GetLocalTime(
  2843. OUT LPSYSTEMTIME lpSystemTime
  2844. );
  2845. WINBASEAPI
  2846. BOOL
  2847. WINAPI
  2848. SetLocalTime(
  2849. IN CONST SYSTEMTIME *lpSystemTime
  2850. );
  2851. WINBASEAPI
  2852. VOID
  2853. WINAPI
  2854. GetSystemInfo(
  2855. OUT LPSYSTEM_INFO lpSystemInfo
  2856. );
  2857. #if _WIN32_WINNT >= 0x0501
  2858. WINBASEAPI
  2859. BOOL
  2860. WINAPI
  2861. GetSystemRegistryQuota(
  2862. OUT PDWORD pdwQuotaAllowed,
  2863. OUT PDWORD pdwQuotaUsed
  2864. );
  2865. BOOL
  2866. WINAPI
  2867. GetSystemTimes(
  2868. LPFILETIME lpIdleTime,
  2869. LPFILETIME lpKernelTime,
  2870. LPFILETIME lpUserTime
  2871. );
  2872. #endif // (_WIN32_WINNT >= 0x0501)
  2873. #if _WIN32_WINNT >= 0x0501
  2874. WINBASEAPI
  2875. VOID
  2876. WINAPI
  2877. GetNativeSystemInfo(
  2878. OUT LPSYSTEM_INFO lpSystemInfo
  2879. );
  2880. #endif
  2881. WINBASEAPI
  2882. BOOL
  2883. WINAPI
  2884. IsProcessorFeaturePresent(
  2885. IN DWORD ProcessorFeature
  2886. );
  2887. typedef struct _TIME_ZONE_INFORMATION {
  2888. LONG Bias;
  2889. WCHAR StandardName[ 32 ];
  2890. SYSTEMTIME StandardDate;
  2891. LONG StandardBias;
  2892. WCHAR DaylightName[ 32 ];
  2893. SYSTEMTIME DaylightDate;
  2894. LONG DaylightBias;
  2895. } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
  2896. WINBASEAPI
  2897. BOOL
  2898. WINAPI
  2899. SystemTimeToTzSpecificLocalTime(
  2900. IN LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
  2901. IN LPSYSTEMTIME lpUniversalTime,
  2902. OUT LPSYSTEMTIME lpLocalTime
  2903. );
  2904. WINBASEAPI
  2905. BOOL
  2906. WINAPI
  2907. TzSpecificLocalTimeToSystemTime(
  2908. IN LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
  2909. IN LPSYSTEMTIME lpLocalTime,
  2910. OUT LPSYSTEMTIME lpUniversalTime
  2911. );
  2912. WINBASEAPI
  2913. DWORD
  2914. WINAPI
  2915. GetTimeZoneInformation(
  2916. OUT LPTIME_ZONE_INFORMATION lpTimeZoneInformation
  2917. );
  2918. WINBASEAPI
  2919. BOOL
  2920. WINAPI
  2921. SetTimeZoneInformation(
  2922. IN CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation
  2923. );
  2924. //
  2925. // Routines to convert back and forth between system time and file time
  2926. //
  2927. WINBASEAPI
  2928. BOOL
  2929. WINAPI
  2930. SystemTimeToFileTime(
  2931. IN CONST SYSTEMTIME *lpSystemTime,
  2932. OUT LPFILETIME lpFileTime
  2933. );
  2934. WINBASEAPI
  2935. BOOL
  2936. WINAPI
  2937. FileTimeToLocalFileTime(
  2938. IN CONST FILETIME *lpFileTime,
  2939. OUT LPFILETIME lpLocalFileTime
  2940. );
  2941. WINBASEAPI
  2942. BOOL
  2943. WINAPI
  2944. LocalFileTimeToFileTime(
  2945. IN CONST FILETIME *lpLocalFileTime,
  2946. OUT LPFILETIME lpFileTime
  2947. );
  2948. WINBASEAPI
  2949. BOOL
  2950. WINAPI
  2951. FileTimeToSystemTime(
  2952. IN CONST FILETIME *lpFileTime,
  2953. OUT LPSYSTEMTIME lpSystemTime
  2954. );
  2955. WINBASEAPI
  2956. LONG
  2957. WINAPI
  2958. CompareFileTime(
  2959. IN CONST FILETIME *lpFileTime1,
  2960. IN CONST FILETIME *lpFileTime2
  2961. );
  2962. WINBASEAPI
  2963. BOOL
  2964. WINAPI
  2965. FileTimeToDosDateTime(
  2966. IN CONST FILETIME *lpFileTime,
  2967. OUT LPWORD lpFatDate,
  2968. OUT LPWORD lpFatTime
  2969. );
  2970. WINBASEAPI
  2971. BOOL
  2972. WINAPI
  2973. DosDateTimeToFileTime(
  2974. IN WORD wFatDate,
  2975. IN WORD wFatTime,
  2976. OUT LPFILETIME lpFileTime
  2977. );
  2978. WINBASEAPI
  2979. DWORD
  2980. WINAPI
  2981. GetTickCount(
  2982. VOID
  2983. );
  2984. WINBASEAPI
  2985. BOOL
  2986. WINAPI
  2987. SetSystemTimeAdjustment(
  2988. IN DWORD dwTimeAdjustment,
  2989. IN BOOL bTimeAdjustmentDisabled
  2990. );
  2991. WINBASEAPI
  2992. BOOL
  2993. WINAPI
  2994. GetSystemTimeAdjustment(
  2995. OUT PDWORD lpTimeAdjustment,
  2996. OUT PDWORD lpTimeIncrement,
  2997. OUT PBOOL lpTimeAdjustmentDisabled
  2998. );
  2999. #if !defined(MIDL_PASS)
  3000. WINBASEAPI
  3001. DWORD
  3002. WINAPI
  3003. FormatMessageA(
  3004. IN DWORD dwFlags,
  3005. IN LPCVOID lpSource,
  3006. IN DWORD dwMessageId,
  3007. IN DWORD dwLanguageId,
  3008. OUT LPSTR lpBuffer,
  3009. IN DWORD nSize,
  3010. IN va_list *Arguments
  3011. );
  3012. WINBASEAPI
  3013. DWORD
  3014. WINAPI
  3015. FormatMessageW(
  3016. IN DWORD dwFlags,
  3017. IN LPCVOID lpSource,
  3018. IN DWORD dwMessageId,
  3019. IN DWORD dwLanguageId,
  3020. OUT LPWSTR lpBuffer,
  3021. IN DWORD nSize,
  3022. IN va_list *Arguments
  3023. );
  3024. #ifdef UNICODE
  3025. #define FormatMessage FormatMessageW
  3026. #else
  3027. #define FormatMessage FormatMessageA
  3028. #endif // !UNICODE
  3029. #endif
  3030. #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100
  3031. #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
  3032. #define FORMAT_MESSAGE_FROM_STRING 0x00000400
  3033. #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800
  3034. #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
  3035. #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000
  3036. #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF
  3037. WINBASEAPI
  3038. BOOL
  3039. WINAPI
  3040. CreatePipe(
  3041. OUT PHANDLE hReadPipe,
  3042. OUT PHANDLE hWritePipe,
  3043. IN LPSECURITY_ATTRIBUTES lpPipeAttributes,
  3044. IN DWORD nSize
  3045. );
  3046. WINBASEAPI
  3047. BOOL
  3048. WINAPI
  3049. ConnectNamedPipe(
  3050. IN HANDLE hNamedPipe,
  3051. IN LPOVERLAPPED lpOverlapped
  3052. );
  3053. WINBASEAPI
  3054. BOOL
  3055. WINAPI
  3056. DisconnectNamedPipe(
  3057. IN HANDLE hNamedPipe
  3058. );
  3059. WINBASEAPI
  3060. BOOL
  3061. WINAPI
  3062. SetNamedPipeHandleState(
  3063. IN HANDLE hNamedPipe,
  3064. IN LPDWORD lpMode,
  3065. IN LPDWORD lpMaxCollectionCount,
  3066. IN LPDWORD lpCollectDataTimeout
  3067. );
  3068. WINBASEAPI
  3069. BOOL
  3070. WINAPI
  3071. GetNamedPipeInfo(
  3072. IN HANDLE hNamedPipe,
  3073. IN LPDWORD lpFlags,
  3074. OUT LPDWORD lpOutBufferSize,
  3075. OUT LPDWORD lpInBufferSize,
  3076. OUT LPDWORD lpMaxInstances
  3077. );
  3078. WINBASEAPI
  3079. BOOL
  3080. WINAPI
  3081. PeekNamedPipe(
  3082. IN HANDLE hNamedPipe,
  3083. OUT LPVOID lpBuffer,
  3084. IN DWORD nBufferSize,
  3085. OUT LPDWORD lpBytesRead,
  3086. OUT LPDWORD lpTotalBytesAvail,
  3087. OUT LPDWORD lpBytesLeftThisMessage
  3088. );
  3089. WINBASEAPI
  3090. BOOL
  3091. WINAPI
  3092. TransactNamedPipe(
  3093. IN HANDLE hNamedPipe,
  3094. IN LPVOID lpInBuffer,
  3095. IN DWORD nInBufferSize,
  3096. OUT LPVOID lpOutBuffer,
  3097. IN DWORD nOutBufferSize,
  3098. OUT LPDWORD lpBytesRead,
  3099. IN LPOVERLAPPED lpOverlapped
  3100. );
  3101. WINBASEAPI
  3102. HANDLE
  3103. WINAPI
  3104. CreateMailslotA(
  3105. IN LPCSTR lpName,
  3106. IN DWORD nMaxMessageSize,
  3107. IN DWORD lReadTimeout,
  3108. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  3109. );
  3110. WINBASEAPI
  3111. HANDLE
  3112. WINAPI
  3113. CreateMailslotW(
  3114. IN LPCWSTR lpName,
  3115. IN DWORD nMaxMessageSize,
  3116. IN DWORD lReadTimeout,
  3117. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  3118. );
  3119. #ifdef UNICODE
  3120. #define CreateMailslot CreateMailslotW
  3121. #else
  3122. #define CreateMailslot CreateMailslotA
  3123. #endif // !UNICODE
  3124. WINBASEAPI
  3125. BOOL
  3126. WINAPI
  3127. GetMailslotInfo(
  3128. IN HANDLE hMailslot,
  3129. IN LPDWORD lpMaxMessageSize,
  3130. IN LPDWORD lpNextSize,
  3131. IN LPDWORD lpMessageCount,
  3132. IN LPDWORD lpReadTimeout
  3133. );
  3134. WINBASEAPI
  3135. BOOL
  3136. WINAPI
  3137. SetMailslotInfo(
  3138. IN HANDLE hMailslot,
  3139. IN DWORD lReadTimeout
  3140. );
  3141. WINBASEAPI
  3142. LPVOID
  3143. WINAPI
  3144. MapViewOfFile(
  3145. IN HANDLE hFileMappingObject,
  3146. IN DWORD dwDesiredAccess,
  3147. IN DWORD dwFileOffsetHigh,
  3148. IN DWORD dwFileOffsetLow,
  3149. IN SIZE_T dwNumberOfBytesToMap
  3150. );
  3151. WINBASEAPI
  3152. BOOL
  3153. WINAPI
  3154. FlushViewOfFile(
  3155. IN LPCVOID lpBaseAddress,
  3156. IN SIZE_T dwNumberOfBytesToFlush
  3157. );
  3158. WINBASEAPI
  3159. BOOL
  3160. WINAPI
  3161. UnmapViewOfFile(
  3162. IN LPCVOID lpBaseAddress
  3163. );
  3164. //
  3165. // File Encryption API
  3166. //
  3167. WINADVAPI
  3168. BOOL
  3169. WINAPI
  3170. EncryptFileA(
  3171. IN LPCSTR lpFileName
  3172. );
  3173. WINADVAPI
  3174. BOOL
  3175. WINAPI
  3176. EncryptFileW(
  3177. IN LPCWSTR lpFileName
  3178. );
  3179. #ifdef UNICODE
  3180. #define EncryptFile EncryptFileW
  3181. #else
  3182. #define EncryptFile EncryptFileA
  3183. #endif // !UNICODE
  3184. WINADVAPI
  3185. BOOL
  3186. WINAPI
  3187. DecryptFileA(
  3188. IN LPCSTR lpFileName,
  3189. IN DWORD dwReserved
  3190. );
  3191. WINADVAPI
  3192. BOOL
  3193. WINAPI
  3194. DecryptFileW(
  3195. IN LPCWSTR lpFileName,
  3196. IN DWORD dwReserved
  3197. );
  3198. #ifdef UNICODE
  3199. #define DecryptFile DecryptFileW
  3200. #else
  3201. #define DecryptFile DecryptFileA
  3202. #endif // !UNICODE
  3203. //
  3204. // Encryption Status Value
  3205. //
  3206. #define FILE_ENCRYPTABLE 0
  3207. #define FILE_IS_ENCRYPTED 1
  3208. #define FILE_SYSTEM_ATTR 2
  3209. #define FILE_ROOT_DIR 3
  3210. #define FILE_SYSTEM_DIR 4
  3211. #define FILE_UNKNOWN 5
  3212. #define FILE_SYSTEM_NOT_SUPPORT 6
  3213. #define FILE_USER_DISALLOWED 7
  3214. #define FILE_READ_ONLY 8
  3215. #define FILE_DIR_DISALLOWED 9
  3216. WINADVAPI
  3217. BOOL
  3218. WINAPI
  3219. FileEncryptionStatusA(
  3220. LPCSTR lpFileName,
  3221. LPDWORD lpStatus
  3222. );
  3223. WINADVAPI
  3224. BOOL
  3225. WINAPI
  3226. FileEncryptionStatusW(
  3227. LPCWSTR lpFileName,
  3228. LPDWORD lpStatus
  3229. );
  3230. #ifdef UNICODE
  3231. #define FileEncryptionStatus FileEncryptionStatusW
  3232. #else
  3233. #define FileEncryptionStatus FileEncryptionStatusA
  3234. #endif // !UNICODE
  3235. //
  3236. // Currently defined recovery flags
  3237. //
  3238. #define EFS_USE_RECOVERY_KEYS (0x1)
  3239. typedef
  3240. DWORD
  3241. (WINAPI *PFE_EXPORT_FUNC)(
  3242. PBYTE pbData,
  3243. PVOID pvCallbackContext,
  3244. ULONG ulLength
  3245. );
  3246. typedef
  3247. DWORD
  3248. (WINAPI *PFE_IMPORT_FUNC)(
  3249. PBYTE pbData,
  3250. PVOID pvCallbackContext,
  3251. PULONG ulLength
  3252. );
  3253. //
  3254. // OpenRaw flag values
  3255. //
  3256. #define CREATE_FOR_IMPORT (1)
  3257. #define CREATE_FOR_DIR (2)
  3258. #define OVERWRITE_HIDDEN (4)
  3259. WINADVAPI
  3260. DWORD
  3261. WINAPI
  3262. OpenEncryptedFileRawA(
  3263. IN LPCSTR lpFileName,
  3264. IN ULONG ulFlags,
  3265. IN PVOID * pvContext
  3266. );
  3267. WINADVAPI
  3268. DWORD
  3269. WINAPI
  3270. OpenEncryptedFileRawW(
  3271. IN LPCWSTR lpFileName,
  3272. IN ULONG ulFlags,
  3273. IN PVOID * pvContext
  3274. );
  3275. #ifdef UNICODE
  3276. #define OpenEncryptedFileRaw OpenEncryptedFileRawW
  3277. #else
  3278. #define OpenEncryptedFileRaw OpenEncryptedFileRawA
  3279. #endif // !UNICODE
  3280. WINADVAPI
  3281. DWORD
  3282. WINAPI
  3283. ReadEncryptedFileRaw(
  3284. IN PFE_EXPORT_FUNC pfExportCallback,
  3285. IN PVOID pvCallbackContext,
  3286. IN PVOID pvContext
  3287. );
  3288. WINADVAPI
  3289. DWORD
  3290. WINAPI
  3291. WriteEncryptedFileRaw(
  3292. IN PFE_IMPORT_FUNC pfImportCallback,
  3293. IN PVOID pvCallbackContext,
  3294. IN PVOID pvContext
  3295. );
  3296. WINADVAPI
  3297. VOID
  3298. WINAPI
  3299. CloseEncryptedFileRaw(
  3300. IN PVOID pvContext
  3301. );
  3302. //
  3303. // _l Compat Functions
  3304. //
  3305. WINBASEAPI
  3306. int
  3307. WINAPI
  3308. lstrcmpA(
  3309. IN LPCSTR lpString1,
  3310. IN LPCSTR lpString2
  3311. );
  3312. WINBASEAPI
  3313. int
  3314. WINAPI
  3315. lstrcmpW(
  3316. IN LPCWSTR lpString1,
  3317. IN LPCWSTR lpString2
  3318. );
  3319. #ifdef UNICODE
  3320. #define lstrcmp lstrcmpW
  3321. #else
  3322. #define lstrcmp lstrcmpA
  3323. #endif // !UNICODE
  3324. WINBASEAPI
  3325. int
  3326. WINAPI
  3327. lstrcmpiA(
  3328. IN LPCSTR lpString1,
  3329. IN LPCSTR lpString2
  3330. );
  3331. WINBASEAPI
  3332. int
  3333. WINAPI
  3334. lstrcmpiW(
  3335. IN LPCWSTR lpString1,
  3336. IN LPCWSTR lpString2
  3337. );
  3338. #ifdef UNICODE
  3339. #define lstrcmpi lstrcmpiW
  3340. #else
  3341. #define lstrcmpi lstrcmpiA
  3342. #endif // !UNICODE
  3343. WINBASEAPI
  3344. LPSTR
  3345. WINAPI
  3346. lstrcpynA(
  3347. OUT LPSTR lpString1,
  3348. IN LPCSTR lpString2,
  3349. IN int iMaxLength
  3350. );
  3351. WINBASEAPI
  3352. LPWSTR
  3353. WINAPI
  3354. lstrcpynW(
  3355. OUT LPWSTR lpString1,
  3356. IN LPCWSTR lpString2,
  3357. IN int iMaxLength
  3358. );
  3359. #ifdef UNICODE
  3360. #define lstrcpyn lstrcpynW
  3361. #else
  3362. #define lstrcpyn lstrcpynA
  3363. #endif // !UNICODE
  3364. WINBASEAPI
  3365. LPSTR
  3366. WINAPI
  3367. lstrcpyA(
  3368. OUT LPSTR lpString1,
  3369. IN LPCSTR lpString2
  3370. );
  3371. WINBASEAPI
  3372. LPWSTR
  3373. WINAPI
  3374. lstrcpyW(
  3375. OUT LPWSTR lpString1,
  3376. IN LPCWSTR lpString2
  3377. );
  3378. #ifdef UNICODE
  3379. #define lstrcpy lstrcpyW
  3380. #else
  3381. #define lstrcpy lstrcpyA
  3382. #endif // !UNICODE
  3383. WINBASEAPI
  3384. LPSTR
  3385. WINAPI
  3386. lstrcatA(
  3387. IN OUT LPSTR lpString1,
  3388. IN LPCSTR lpString2
  3389. );
  3390. WINBASEAPI
  3391. LPWSTR
  3392. WINAPI
  3393. lstrcatW(
  3394. IN OUT LPWSTR lpString1,
  3395. IN LPCWSTR lpString2
  3396. );
  3397. #ifdef UNICODE
  3398. #define lstrcat lstrcatW
  3399. #else
  3400. #define lstrcat lstrcatA
  3401. #endif // !UNICODE
  3402. WINBASEAPI
  3403. int
  3404. WINAPI
  3405. lstrlenA(
  3406. IN LPCSTR lpString
  3407. );
  3408. WINBASEAPI
  3409. int
  3410. WINAPI
  3411. lstrlenW(
  3412. IN LPCWSTR lpString
  3413. );
  3414. #ifdef UNICODE
  3415. #define lstrlen lstrlenW
  3416. #else
  3417. #define lstrlen lstrlenA
  3418. #endif // !UNICODE
  3419. WINBASEAPI
  3420. HFILE
  3421. WINAPI
  3422. OpenFile(
  3423. IN LPCSTR lpFileName,
  3424. OUT LPOFSTRUCT lpReOpenBuff,
  3425. IN UINT uStyle
  3426. );
  3427. WINBASEAPI
  3428. HFILE
  3429. WINAPI
  3430. _lopen(
  3431. IN LPCSTR lpPathName,
  3432. IN int iReadWrite
  3433. );
  3434. WINBASEAPI
  3435. HFILE
  3436. WINAPI
  3437. _lcreat(
  3438. IN LPCSTR lpPathName,
  3439. IN int iAttribute
  3440. );
  3441. WINBASEAPI
  3442. UINT
  3443. WINAPI
  3444. _lread(
  3445. IN HFILE hFile,
  3446. OUT LPVOID lpBuffer,
  3447. IN UINT uBytes
  3448. );
  3449. WINBASEAPI
  3450. UINT
  3451. WINAPI
  3452. _lwrite(
  3453. IN HFILE hFile,
  3454. IN LPCSTR lpBuffer,
  3455. IN UINT uBytes
  3456. );
  3457. WINBASEAPI
  3458. long
  3459. WINAPI
  3460. _hread(
  3461. IN HFILE hFile,
  3462. OUT LPVOID lpBuffer,
  3463. IN long lBytes
  3464. );
  3465. WINBASEAPI
  3466. long
  3467. WINAPI
  3468. _hwrite(
  3469. IN HFILE hFile,
  3470. IN LPCSTR lpBuffer,
  3471. IN long lBytes
  3472. );
  3473. WINBASEAPI
  3474. HFILE
  3475. WINAPI
  3476. _lclose(
  3477. IN OUT HFILE hFile
  3478. );
  3479. WINBASEAPI
  3480. LONG
  3481. WINAPI
  3482. _llseek(
  3483. IN HFILE hFile,
  3484. IN LONG lOffset,
  3485. IN int iOrigin
  3486. );
  3487. WINADVAPI
  3488. BOOL
  3489. WINAPI
  3490. IsTextUnicode(
  3491. IN CONST VOID* lpBuffer,
  3492. IN int cb,
  3493. IN OUT LPINT lpi
  3494. );
  3495. WINBASEAPI
  3496. DWORD
  3497. WINAPI
  3498. TlsAlloc(
  3499. VOID
  3500. );
  3501. #define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF)
  3502. WINBASEAPI
  3503. LPVOID
  3504. WINAPI
  3505. TlsGetValue(
  3506. IN DWORD dwTlsIndex
  3507. );
  3508. WINBASEAPI
  3509. BOOL
  3510. WINAPI
  3511. TlsSetValue(
  3512. IN DWORD dwTlsIndex,
  3513. IN LPVOID lpTlsValue
  3514. );
  3515. WINBASEAPI
  3516. BOOL
  3517. WINAPI
  3518. TlsFree(
  3519. IN DWORD dwTlsIndex
  3520. );
  3521. typedef
  3522. VOID
  3523. (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)(
  3524. DWORD dwErrorCode,
  3525. DWORD dwNumberOfBytesTransfered,
  3526. LPOVERLAPPED lpOverlapped
  3527. );
  3528. WINBASEAPI
  3529. DWORD
  3530. WINAPI
  3531. SleepEx(
  3532. IN DWORD dwMilliseconds,
  3533. IN BOOL bAlertable
  3534. );
  3535. WINBASEAPI
  3536. DWORD
  3537. WINAPI
  3538. WaitForSingleObjectEx(
  3539. IN HANDLE hHandle,
  3540. IN DWORD dwMilliseconds,
  3541. IN BOOL bAlertable
  3542. );
  3543. WINBASEAPI
  3544. DWORD
  3545. WINAPI
  3546. WaitForMultipleObjectsEx(
  3547. IN DWORD nCount,
  3548. IN CONST HANDLE *lpHandles,
  3549. IN BOOL bWaitAll,
  3550. IN DWORD dwMilliseconds,
  3551. IN BOOL bAlertable
  3552. );
  3553. #if(_WIN32_WINNT >= 0x0400)
  3554. WINBASEAPI
  3555. DWORD
  3556. WINAPI
  3557. SignalObjectAndWait(
  3558. IN HANDLE hObjectToSignal,
  3559. IN HANDLE hObjectToWaitOn,
  3560. IN DWORD dwMilliseconds,
  3561. IN BOOL bAlertable
  3562. );
  3563. #endif /* _WIN32_WINNT >= 0x0400 */
  3564. WINBASEAPI
  3565. BOOL
  3566. WINAPI
  3567. ReadFileEx(
  3568. IN HANDLE hFile,
  3569. OUT LPVOID lpBuffer,
  3570. IN DWORD nNumberOfBytesToRead,
  3571. IN LPOVERLAPPED lpOverlapped,
  3572. IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
  3573. );
  3574. WINBASEAPI
  3575. BOOL
  3576. WINAPI
  3577. WriteFileEx(
  3578. IN HANDLE hFile,
  3579. IN LPCVOID lpBuffer,
  3580. IN DWORD nNumberOfBytesToWrite,
  3581. IN LPOVERLAPPED lpOverlapped,
  3582. IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
  3583. );
  3584. WINBASEAPI
  3585. BOOL
  3586. WINAPI
  3587. BackupRead(
  3588. IN HANDLE hFile,
  3589. OUT LPBYTE lpBuffer,
  3590. IN DWORD nNumberOfBytesToRead,
  3591. OUT LPDWORD lpNumberOfBytesRead,
  3592. IN BOOL bAbort,
  3593. IN BOOL bProcessSecurity,
  3594. OUT LPVOID *lpContext
  3595. );
  3596. WINBASEAPI
  3597. BOOL
  3598. WINAPI
  3599. BackupSeek(
  3600. IN HANDLE hFile,
  3601. IN DWORD dwLowBytesToSeek,
  3602. IN DWORD dwHighBytesToSeek,
  3603. OUT LPDWORD lpdwLowByteSeeked,
  3604. OUT LPDWORD lpdwHighByteSeeked,
  3605. IN LPVOID *lpContext
  3606. );
  3607. WINBASEAPI
  3608. BOOL
  3609. WINAPI
  3610. BackupWrite(
  3611. IN HANDLE hFile,
  3612. IN LPBYTE lpBuffer,
  3613. IN DWORD nNumberOfBytesToWrite,
  3614. OUT LPDWORD lpNumberOfBytesWritten,
  3615. IN BOOL bAbort,
  3616. IN BOOL bProcessSecurity,
  3617. OUT LPVOID *lpContext
  3618. );
  3619. //
  3620. // Stream id structure
  3621. //
  3622. typedef struct _WIN32_STREAM_ID {
  3623. DWORD dwStreamId ;
  3624. DWORD dwStreamAttributes ;
  3625. LARGE_INTEGER Size ;
  3626. DWORD dwStreamNameSize ;
  3627. WCHAR cStreamName[ ANYSIZE_ARRAY ] ;
  3628. } WIN32_STREAM_ID, *LPWIN32_STREAM_ID ;
  3629. //
  3630. // Stream Ids
  3631. //
  3632. #define BACKUP_INVALID 0x00000000
  3633. #define BACKUP_DATA 0x00000001
  3634. #define BACKUP_EA_DATA 0x00000002
  3635. #define BACKUP_SECURITY_DATA 0x00000003
  3636. #define BACKUP_ALTERNATE_DATA 0x00000004
  3637. #define BACKUP_LINK 0x00000005
  3638. #define BACKUP_PROPERTY_DATA 0x00000006
  3639. #define BACKUP_OBJECT_ID 0x00000007
  3640. #define BACKUP_REPARSE_DATA 0x00000008
  3641. #define BACKUP_SPARSE_BLOCK 0x00000009
  3642. //
  3643. // Stream Attributes
  3644. //
  3645. #define STREAM_NORMAL_ATTRIBUTE 0x00000000
  3646. #define STREAM_MODIFIED_WHEN_READ 0x00000001
  3647. #define STREAM_CONTAINS_SECURITY 0x00000002
  3648. #define STREAM_CONTAINS_PROPERTIES 0x00000004
  3649. #define STREAM_SPARSE_ATTRIBUTE 0x00000008
  3650. WINBASEAPI
  3651. BOOL
  3652. WINAPI
  3653. ReadFileScatter(
  3654. IN HANDLE hFile,
  3655. IN FILE_SEGMENT_ELEMENT aSegmentArray[],
  3656. IN DWORD nNumberOfBytesToRead,
  3657. IN LPDWORD lpReserved,
  3658. IN LPOVERLAPPED lpOverlapped
  3659. );
  3660. WINBASEAPI
  3661. BOOL
  3662. WINAPI
  3663. WriteFileGather(
  3664. IN HANDLE hFile,
  3665. OUT FILE_SEGMENT_ELEMENT aSegmentArray[],
  3666. IN DWORD nNumberOfBytesToWrite,
  3667. IN LPDWORD lpReserved,
  3668. IN LPOVERLAPPED lpOverlapped
  3669. );
  3670. //
  3671. // Dual Mode API below this line. Dual Mode Structures also included.
  3672. //
  3673. #define STARTF_USESHOWWINDOW 0x00000001
  3674. #define STARTF_USESIZE 0x00000002
  3675. #define STARTF_USEPOSITION 0x00000004
  3676. #define STARTF_USECOUNTCHARS 0x00000008
  3677. #define STARTF_USEFILLATTRIBUTE 0x00000010
  3678. #define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms
  3679. #define STARTF_FORCEONFEEDBACK 0x00000040
  3680. #define STARTF_FORCEOFFFEEDBACK 0x00000080
  3681. #define STARTF_USESTDHANDLES 0x00000100
  3682. #if(WINVER >= 0x0400)
  3683. #define STARTF_USEHOTKEY 0x00000200
  3684. #endif /* WINVER >= 0x0400 */
  3685. typedef struct _STARTUPINFOA {
  3686. DWORD cb;
  3687. LPSTR lpReserved;
  3688. LPSTR lpDesktop;
  3689. LPSTR lpTitle;
  3690. DWORD dwX;
  3691. DWORD dwY;
  3692. DWORD dwXSize;
  3693. DWORD dwYSize;
  3694. DWORD dwXCountChars;
  3695. DWORD dwYCountChars;
  3696. DWORD dwFillAttribute;
  3697. DWORD dwFlags;
  3698. WORD wShowWindow;
  3699. WORD cbReserved2;
  3700. LPBYTE lpReserved2;
  3701. HANDLE hStdInput;
  3702. HANDLE hStdOutput;
  3703. HANDLE hStdError;
  3704. } STARTUPINFOA, *LPSTARTUPINFOA;
  3705. typedef struct _STARTUPINFOW {
  3706. DWORD cb;
  3707. LPWSTR lpReserved;
  3708. LPWSTR lpDesktop;
  3709. LPWSTR lpTitle;
  3710. DWORD dwX;
  3711. DWORD dwY;
  3712. DWORD dwXSize;
  3713. DWORD dwYSize;
  3714. DWORD dwXCountChars;
  3715. DWORD dwYCountChars;
  3716. DWORD dwFillAttribute;
  3717. DWORD dwFlags;
  3718. WORD wShowWindow;
  3719. WORD cbReserved2;
  3720. LPBYTE lpReserved2;
  3721. HANDLE hStdInput;
  3722. HANDLE hStdOutput;
  3723. HANDLE hStdError;
  3724. } STARTUPINFOW, *LPSTARTUPINFOW;
  3725. #ifdef UNICODE
  3726. typedef STARTUPINFOW STARTUPINFO;
  3727. typedef LPSTARTUPINFOW LPSTARTUPINFO;
  3728. #else
  3729. typedef STARTUPINFOA STARTUPINFO;
  3730. typedef LPSTARTUPINFOA LPSTARTUPINFO;
  3731. #endif // UNICODE
  3732. #define SHUTDOWN_NORETRY 0x00000001
  3733. typedef struct _WIN32_FIND_DATAA {
  3734. DWORD dwFileAttributes;
  3735. FILETIME ftCreationTime;
  3736. FILETIME ftLastAccessTime;
  3737. FILETIME ftLastWriteTime;
  3738. DWORD nFileSizeHigh;
  3739. DWORD nFileSizeLow;
  3740. DWORD dwReserved0;
  3741. DWORD dwReserved1;
  3742. CHAR cFileName[ MAX_PATH ];
  3743. CHAR cAlternateFileName[ 14 ];
  3744. #ifdef _MAC
  3745. DWORD dwFileType;
  3746. DWORD dwCreatorType;
  3747. WORD wFinderFlags;
  3748. #endif
  3749. } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
  3750. typedef struct _WIN32_FIND_DATAW {
  3751. DWORD dwFileAttributes;
  3752. FILETIME ftCreationTime;
  3753. FILETIME ftLastAccessTime;
  3754. FILETIME ftLastWriteTime;
  3755. DWORD nFileSizeHigh;
  3756. DWORD nFileSizeLow;
  3757. DWORD dwReserved0;
  3758. DWORD dwReserved1;
  3759. WCHAR cFileName[ MAX_PATH ];
  3760. WCHAR cAlternateFileName[ 14 ];
  3761. #ifdef _MAC
  3762. DWORD dwFileType;
  3763. DWORD dwCreatorType;
  3764. WORD wFinderFlags;
  3765. #endif
  3766. } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
  3767. #ifdef UNICODE
  3768. typedef WIN32_FIND_DATAW WIN32_FIND_DATA;
  3769. typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA;
  3770. typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
  3771. #else
  3772. typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
  3773. typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
  3774. typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
  3775. #endif // UNICODE
  3776. typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
  3777. DWORD dwFileAttributes;
  3778. FILETIME ftCreationTime;
  3779. FILETIME ftLastAccessTime;
  3780. FILETIME ftLastWriteTime;
  3781. DWORD nFileSizeHigh;
  3782. DWORD nFileSizeLow;
  3783. } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
  3784. WINBASEAPI
  3785. HANDLE
  3786. WINAPI
  3787. CreateMutexA(
  3788. IN LPSECURITY_ATTRIBUTES lpMutexAttributes,
  3789. IN BOOL bInitialOwner,
  3790. IN LPCSTR lpName
  3791. );
  3792. WINBASEAPI
  3793. HANDLE
  3794. WINAPI
  3795. CreateMutexW(
  3796. IN LPSECURITY_ATTRIBUTES lpMutexAttributes,
  3797. IN BOOL bInitialOwner,
  3798. IN LPCWSTR lpName
  3799. );
  3800. #ifdef UNICODE
  3801. #define CreateMutex CreateMutexW
  3802. #else
  3803. #define CreateMutex CreateMutexA
  3804. #endif // !UNICODE
  3805. WINBASEAPI
  3806. HANDLE
  3807. WINAPI
  3808. OpenMutexA(
  3809. IN DWORD dwDesiredAccess,
  3810. IN BOOL bInheritHandle,
  3811. IN LPCSTR lpName
  3812. );
  3813. WINBASEAPI
  3814. HANDLE
  3815. WINAPI
  3816. OpenMutexW(
  3817. IN DWORD dwDesiredAccess,
  3818. IN BOOL bInheritHandle,
  3819. IN LPCWSTR lpName
  3820. );
  3821. #ifdef UNICODE
  3822. #define OpenMutex OpenMutexW
  3823. #else
  3824. #define OpenMutex OpenMutexA
  3825. #endif // !UNICODE
  3826. WINBASEAPI
  3827. HANDLE
  3828. WINAPI
  3829. CreateEventA(
  3830. IN LPSECURITY_ATTRIBUTES lpEventAttributes,
  3831. IN BOOL bManualReset,
  3832. IN BOOL bInitialState,
  3833. IN LPCSTR lpName
  3834. );
  3835. WINBASEAPI
  3836. HANDLE
  3837. WINAPI
  3838. CreateEventW(
  3839. IN LPSECURITY_ATTRIBUTES lpEventAttributes,
  3840. IN BOOL bManualReset,
  3841. IN BOOL bInitialState,
  3842. IN LPCWSTR lpName
  3843. );
  3844. #ifdef UNICODE
  3845. #define CreateEvent CreateEventW
  3846. #else
  3847. #define CreateEvent CreateEventA
  3848. #endif // !UNICODE
  3849. WINBASEAPI
  3850. HANDLE
  3851. WINAPI
  3852. OpenEventA(
  3853. IN DWORD dwDesiredAccess,
  3854. IN BOOL bInheritHandle,
  3855. IN LPCSTR lpName
  3856. );
  3857. WINBASEAPI
  3858. HANDLE
  3859. WINAPI
  3860. OpenEventW(
  3861. IN DWORD dwDesiredAccess,
  3862. IN BOOL bInheritHandle,
  3863. IN LPCWSTR lpName
  3864. );
  3865. #ifdef UNICODE
  3866. #define OpenEvent OpenEventW
  3867. #else
  3868. #define OpenEvent OpenEventA
  3869. #endif // !UNICODE
  3870. WINBASEAPI
  3871. HANDLE
  3872. WINAPI
  3873. CreateSemaphoreA(
  3874. IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
  3875. IN LONG lInitialCount,
  3876. IN LONG lMaximumCount,
  3877. IN LPCSTR lpName
  3878. );
  3879. WINBASEAPI
  3880. HANDLE
  3881. WINAPI
  3882. CreateSemaphoreW(
  3883. IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
  3884. IN LONG lInitialCount,
  3885. IN LONG lMaximumCount,
  3886. IN LPCWSTR lpName
  3887. );
  3888. #ifdef UNICODE
  3889. #define CreateSemaphore CreateSemaphoreW
  3890. #else
  3891. #define CreateSemaphore CreateSemaphoreA
  3892. #endif // !UNICODE
  3893. WINBASEAPI
  3894. HANDLE
  3895. WINAPI
  3896. OpenSemaphoreA(
  3897. IN DWORD dwDesiredAccess,
  3898. IN BOOL bInheritHandle,
  3899. IN LPCSTR lpName
  3900. );
  3901. WINBASEAPI
  3902. HANDLE
  3903. WINAPI
  3904. OpenSemaphoreW(
  3905. IN DWORD dwDesiredAccess,
  3906. IN BOOL bInheritHandle,
  3907. IN LPCWSTR lpName
  3908. );
  3909. #ifdef UNICODE
  3910. #define OpenSemaphore OpenSemaphoreW
  3911. #else
  3912. #define OpenSemaphore OpenSemaphoreA
  3913. #endif // !UNICODE
  3914. #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  3915. typedef
  3916. VOID
  3917. (APIENTRY *PTIMERAPCROUTINE)(
  3918. LPVOID lpArgToCompletionRoutine,
  3919. DWORD dwTimerLowValue,
  3920. DWORD dwTimerHighValue
  3921. );
  3922. WINBASEAPI
  3923. HANDLE
  3924. WINAPI
  3925. CreateWaitableTimerA(
  3926. IN LPSECURITY_ATTRIBUTES lpTimerAttributes,
  3927. IN BOOL bManualReset,
  3928. IN LPCSTR lpTimerName
  3929. );
  3930. WINBASEAPI
  3931. HANDLE
  3932. WINAPI
  3933. CreateWaitableTimerW(
  3934. IN LPSECURITY_ATTRIBUTES lpTimerAttributes,
  3935. IN BOOL bManualReset,
  3936. IN LPCWSTR lpTimerName
  3937. );
  3938. #ifdef UNICODE
  3939. #define CreateWaitableTimer CreateWaitableTimerW
  3940. #else
  3941. #define CreateWaitableTimer CreateWaitableTimerA
  3942. #endif // !UNICODE
  3943. WINBASEAPI
  3944. HANDLE
  3945. WINAPI
  3946. OpenWaitableTimerA(
  3947. IN DWORD dwDesiredAccess,
  3948. IN BOOL bInheritHandle,
  3949. IN LPCSTR lpTimerName
  3950. );
  3951. WINBASEAPI
  3952. HANDLE
  3953. WINAPI
  3954. OpenWaitableTimerW(
  3955. IN DWORD dwDesiredAccess,
  3956. IN BOOL bInheritHandle,
  3957. IN LPCWSTR lpTimerName
  3958. );
  3959. #ifdef UNICODE
  3960. #define OpenWaitableTimer OpenWaitableTimerW
  3961. #else
  3962. #define OpenWaitableTimer OpenWaitableTimerA
  3963. #endif // !UNICODE
  3964. WINBASEAPI
  3965. BOOL
  3966. WINAPI
  3967. SetWaitableTimer(
  3968. IN HANDLE hTimer,
  3969. IN const LARGE_INTEGER *lpDueTime,
  3970. IN LONG lPeriod,
  3971. IN PTIMERAPCROUTINE pfnCompletionRoutine,
  3972. IN LPVOID lpArgToCompletionRoutine,
  3973. IN BOOL fResume
  3974. );
  3975. WINBASEAPI
  3976. BOOL
  3977. WINAPI
  3978. CancelWaitableTimer(
  3979. IN HANDLE hTimer
  3980. );
  3981. #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */
  3982. WINBASEAPI
  3983. HANDLE
  3984. WINAPI
  3985. CreateFileMappingA(
  3986. IN HANDLE hFile,
  3987. IN LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
  3988. IN DWORD flProtect,
  3989. IN DWORD dwMaximumSizeHigh,
  3990. IN DWORD dwMaximumSizeLow,
  3991. IN LPCSTR lpName
  3992. );
  3993. WINBASEAPI
  3994. HANDLE
  3995. WINAPI
  3996. CreateFileMappingW(
  3997. IN HANDLE hFile,
  3998. IN LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
  3999. IN DWORD flProtect,
  4000. IN DWORD dwMaximumSizeHigh,
  4001. IN DWORD dwMaximumSizeLow,
  4002. IN LPCWSTR lpName
  4003. );
  4004. #ifdef UNICODE
  4005. #define CreateFileMapping CreateFileMappingW
  4006. #else
  4007. #define CreateFileMapping CreateFileMappingA
  4008. #endif // !UNICODE
  4009. WINBASEAPI
  4010. HANDLE
  4011. WINAPI
  4012. OpenFileMappingA(
  4013. IN DWORD dwDesiredAccess,
  4014. IN BOOL bInheritHandle,
  4015. IN LPCSTR lpName
  4016. );
  4017. WINBASEAPI
  4018. HANDLE
  4019. WINAPI
  4020. OpenFileMappingW(
  4021. IN DWORD dwDesiredAccess,
  4022. IN BOOL bInheritHandle,
  4023. IN LPCWSTR lpName
  4024. );
  4025. #ifdef UNICODE
  4026. #define OpenFileMapping OpenFileMappingW
  4027. #else
  4028. #define OpenFileMapping OpenFileMappingA
  4029. #endif // !UNICODE
  4030. WINBASEAPI
  4031. DWORD
  4032. WINAPI
  4033. GetLogicalDriveStringsA(
  4034. IN DWORD nBufferLength,
  4035. OUT LPSTR lpBuffer
  4036. );
  4037. WINBASEAPI
  4038. DWORD
  4039. WINAPI
  4040. GetLogicalDriveStringsW(
  4041. IN DWORD nBufferLength,
  4042. OUT LPWSTR lpBuffer
  4043. );
  4044. #ifdef UNICODE
  4045. #define GetLogicalDriveStrings GetLogicalDriveStringsW
  4046. #else
  4047. #define GetLogicalDriveStrings GetLogicalDriveStringsA
  4048. #endif // !UNICODE
  4049. #if _WIN32_WINNT >= 0x0501
  4050. typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
  4051. LowMemoryResourceNotification,
  4052. HighMemoryResourceNotification
  4053. } MEMORY_RESOURCE_NOTIFICATION_TYPE;
  4054. WINBASEAPI
  4055. HANDLE
  4056. WINAPI
  4057. CreateMemoryResourceNotification(
  4058. IN MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType
  4059. );
  4060. WINBASEAPI
  4061. BOOL
  4062. WINAPI
  4063. QueryMemoryResourceNotification(
  4064. IN HANDLE ResourceNotificationHandle,
  4065. OUT PBOOL ResourceState
  4066. );
  4067. #endif // _WIN32_WINNT >= 0x0501
  4068. WINBASEAPI
  4069. HMODULE
  4070. WINAPI
  4071. LoadLibraryA(
  4072. IN LPCSTR lpLibFileName
  4073. );
  4074. WINBASEAPI
  4075. HMODULE
  4076. WINAPI
  4077. LoadLibraryW(
  4078. IN LPCWSTR lpLibFileName
  4079. );
  4080. #ifdef UNICODE
  4081. #define LoadLibrary LoadLibraryW
  4082. #else
  4083. #define LoadLibrary LoadLibraryA
  4084. #endif // !UNICODE
  4085. WINBASEAPI
  4086. HMODULE
  4087. WINAPI
  4088. LoadLibraryExA(
  4089. IN LPCSTR lpLibFileName,
  4090. IN HANDLE hFile,
  4091. IN DWORD dwFlags
  4092. );
  4093. WINBASEAPI
  4094. HMODULE
  4095. WINAPI
  4096. LoadLibraryExW(
  4097. IN LPCWSTR lpLibFileName,
  4098. IN HANDLE hFile,
  4099. IN DWORD dwFlags
  4100. );
  4101. #ifdef UNICODE
  4102. #define LoadLibraryEx LoadLibraryExW
  4103. #else
  4104. #define LoadLibraryEx LoadLibraryExA
  4105. #endif // !UNICODE
  4106. #define DONT_RESOLVE_DLL_REFERENCES 0x00000001
  4107. #define LOAD_LIBRARY_AS_DATAFILE 0x00000002
  4108. #define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008
  4109. #define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x00000010
  4110. WINBASEAPI
  4111. DWORD
  4112. WINAPI
  4113. GetModuleFileNameA(
  4114. IN HMODULE hModule,
  4115. OUT LPSTR lpFilename,
  4116. IN DWORD nSize
  4117. );
  4118. WINBASEAPI
  4119. DWORD
  4120. WINAPI
  4121. GetModuleFileNameW(
  4122. IN HMODULE hModule,
  4123. OUT LPWSTR lpFilename,
  4124. IN DWORD nSize
  4125. );
  4126. #ifdef UNICODE
  4127. #define GetModuleFileName GetModuleFileNameW
  4128. #else
  4129. #define GetModuleFileName GetModuleFileNameA
  4130. #endif // !UNICODE
  4131. WINBASEAPI
  4132. HMODULE
  4133. WINAPI
  4134. GetModuleHandleA(
  4135. IN LPCSTR lpModuleName
  4136. );
  4137. WINBASEAPI
  4138. HMODULE
  4139. WINAPI
  4140. GetModuleHandleW(
  4141. IN LPCWSTR lpModuleName
  4142. );
  4143. #ifdef UNICODE
  4144. #define GetModuleHandle GetModuleHandleW
  4145. #else
  4146. #define GetModuleHandle GetModuleHandleA
  4147. #endif // !UNICODE
  4148. #if !defined(RC_INVOKED)
  4149. #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || ISOLATION_AWARE_ENABLED
  4150. #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x00000001)
  4151. #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x00000002)
  4152. #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x00000004)
  4153. typedef
  4154. BOOL
  4155. (WINAPI*
  4156. PGET_MODULE_HANDLE_EXA)(
  4157. IN DWORD dwFlags,
  4158. IN LPCSTR lpModuleName,
  4159. OUT HMODULE* phModule
  4160. );
  4161. typedef
  4162. BOOL
  4163. (WINAPI*
  4164. PGET_MODULE_HANDLE_EXW)(
  4165. IN DWORD dwFlags,
  4166. IN LPCWSTR lpModuleName,
  4167. OUT HMODULE* phModule
  4168. );
  4169. #ifdef UNICODE
  4170. #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXW
  4171. #else
  4172. #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXA
  4173. #endif // !UNICODE
  4174. WINBASEAPI
  4175. BOOL
  4176. WINAPI
  4177. GetModuleHandleExA(
  4178. IN DWORD dwFlags,
  4179. IN LPCSTR lpModuleName,
  4180. OUT HMODULE* phModule
  4181. );
  4182. WINBASEAPI
  4183. BOOL
  4184. WINAPI
  4185. GetModuleHandleExW(
  4186. IN DWORD dwFlags,
  4187. IN LPCWSTR lpModuleName,
  4188. OUT HMODULE* phModule
  4189. );
  4190. #ifdef UNICODE
  4191. #define GetModuleHandleEx GetModuleHandleExW
  4192. #else
  4193. #define GetModuleHandleEx GetModuleHandleExA
  4194. #endif // !UNICODE
  4195. #endif
  4196. #endif
  4197. WINBASEAPI
  4198. BOOL
  4199. WINAPI
  4200. CreateProcessA(
  4201. IN LPCSTR lpApplicationName,
  4202. IN LPSTR lpCommandLine,
  4203. IN LPSECURITY_ATTRIBUTES lpProcessAttributes,
  4204. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  4205. IN BOOL bInheritHandles,
  4206. IN DWORD dwCreationFlags,
  4207. IN LPVOID lpEnvironment,
  4208. IN LPCSTR lpCurrentDirectory,
  4209. IN LPSTARTUPINFOA lpStartupInfo,
  4210. OUT LPPROCESS_INFORMATION lpProcessInformation
  4211. );
  4212. WINBASEAPI
  4213. BOOL
  4214. WINAPI
  4215. CreateProcessW(
  4216. IN LPCWSTR lpApplicationName,
  4217. IN LPWSTR lpCommandLine,
  4218. IN LPSECURITY_ATTRIBUTES lpProcessAttributes,
  4219. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  4220. IN BOOL bInheritHandles,
  4221. IN DWORD dwCreationFlags,
  4222. IN LPVOID lpEnvironment,
  4223. IN LPCWSTR lpCurrentDirectory,
  4224. IN LPSTARTUPINFOW lpStartupInfo,
  4225. OUT LPPROCESS_INFORMATION lpProcessInformation
  4226. );
  4227. #ifdef UNICODE
  4228. #define CreateProcess CreateProcessW
  4229. #else
  4230. #define CreateProcess CreateProcessA
  4231. #endif // !UNICODE
  4232. WINBASEAPI
  4233. BOOL
  4234. WINAPI
  4235. SetProcessShutdownParameters(
  4236. IN DWORD dwLevel,
  4237. IN DWORD dwFlags
  4238. );
  4239. WINBASEAPI
  4240. BOOL
  4241. WINAPI
  4242. GetProcessShutdownParameters(
  4243. OUT LPDWORD lpdwLevel,
  4244. OUT LPDWORD lpdwFlags
  4245. );
  4246. WINBASEAPI
  4247. DWORD
  4248. WINAPI
  4249. GetProcessVersion(
  4250. IN DWORD ProcessId
  4251. );
  4252. WINBASEAPI
  4253. VOID
  4254. WINAPI
  4255. FatalAppExitA(
  4256. IN UINT uAction,
  4257. IN LPCSTR lpMessageText
  4258. );
  4259. WINBASEAPI
  4260. VOID
  4261. WINAPI
  4262. FatalAppExitW(
  4263. IN UINT uAction,
  4264. IN LPCWSTR lpMessageText
  4265. );
  4266. #ifdef UNICODE
  4267. #define FatalAppExit FatalAppExitW
  4268. #else
  4269. #define FatalAppExit FatalAppExitA
  4270. #endif // !UNICODE
  4271. WINBASEAPI
  4272. VOID
  4273. WINAPI
  4274. GetStartupInfoA(
  4275. OUT LPSTARTUPINFOA lpStartupInfo
  4276. );
  4277. WINBASEAPI
  4278. VOID
  4279. WINAPI
  4280. GetStartupInfoW(
  4281. OUT LPSTARTUPINFOW lpStartupInfo
  4282. );
  4283. #ifdef UNICODE
  4284. #define GetStartupInfo GetStartupInfoW
  4285. #else
  4286. #define GetStartupInfo GetStartupInfoA
  4287. #endif // !UNICODE
  4288. WINBASEAPI
  4289. LPSTR
  4290. WINAPI
  4291. GetCommandLineA(
  4292. VOID
  4293. );
  4294. WINBASEAPI
  4295. LPWSTR
  4296. WINAPI
  4297. GetCommandLineW(
  4298. VOID
  4299. );
  4300. #ifdef UNICODE
  4301. #define GetCommandLine GetCommandLineW
  4302. #else
  4303. #define GetCommandLine GetCommandLineA
  4304. #endif // !UNICODE
  4305. WINBASEAPI
  4306. DWORD
  4307. WINAPI
  4308. GetEnvironmentVariableA(
  4309. IN LPCSTR lpName,
  4310. OUT LPSTR lpBuffer,
  4311. IN DWORD nSize
  4312. );
  4313. WINBASEAPI
  4314. DWORD
  4315. WINAPI
  4316. GetEnvironmentVariableW(
  4317. IN LPCWSTR lpName,
  4318. OUT LPWSTR lpBuffer,
  4319. IN DWORD nSize
  4320. );
  4321. #ifdef UNICODE
  4322. #define GetEnvironmentVariable GetEnvironmentVariableW
  4323. #else
  4324. #define GetEnvironmentVariable GetEnvironmentVariableA
  4325. #endif // !UNICODE
  4326. WINBASEAPI
  4327. BOOL
  4328. WINAPI
  4329. SetEnvironmentVariableA(
  4330. IN LPCSTR lpName,
  4331. IN LPCSTR lpValue
  4332. );
  4333. WINBASEAPI
  4334. BOOL
  4335. WINAPI
  4336. SetEnvironmentVariableW(
  4337. IN LPCWSTR lpName,
  4338. IN LPCWSTR lpValue
  4339. );
  4340. #ifdef UNICODE
  4341. #define SetEnvironmentVariable SetEnvironmentVariableW
  4342. #else
  4343. #define SetEnvironmentVariable SetEnvironmentVariableA
  4344. #endif // !UNICODE
  4345. WINBASEAPI
  4346. DWORD
  4347. WINAPI
  4348. ExpandEnvironmentStringsA(
  4349. IN LPCSTR lpSrc,
  4350. OUT LPSTR lpDst,
  4351. IN DWORD nSize
  4352. );
  4353. WINBASEAPI
  4354. DWORD
  4355. WINAPI
  4356. ExpandEnvironmentStringsW(
  4357. IN LPCWSTR lpSrc,
  4358. OUT LPWSTR lpDst,
  4359. IN DWORD nSize
  4360. );
  4361. #ifdef UNICODE
  4362. #define ExpandEnvironmentStrings ExpandEnvironmentStringsW
  4363. #else
  4364. #define ExpandEnvironmentStrings ExpandEnvironmentStringsA
  4365. #endif // !UNICODE
  4366. WINBASEAPI
  4367. DWORD
  4368. WINAPI
  4369. GetFirmwareEnvironmentVariableA(
  4370. IN LPCSTR lpName,
  4371. IN LPCSTR lpGuid,
  4372. OUT PVOID pBuffer,
  4373. IN DWORD nSize
  4374. );
  4375. WINBASEAPI
  4376. DWORD
  4377. WINAPI
  4378. GetFirmwareEnvironmentVariableW(
  4379. IN LPCWSTR lpName,
  4380. IN LPCWSTR lpGuid,
  4381. OUT PVOID pBuffer,
  4382. IN DWORD nSize
  4383. );
  4384. #ifdef UNICODE
  4385. #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableW
  4386. #else
  4387. #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableA
  4388. #endif // !UNICODE
  4389. WINBASEAPI
  4390. BOOL
  4391. WINAPI
  4392. SetFirmwareEnvironmentVariableA(
  4393. IN LPCSTR lpName,
  4394. IN LPCSTR lpGuid,
  4395. IN PVOID pValue,
  4396. IN DWORD nSize
  4397. );
  4398. WINBASEAPI
  4399. BOOL
  4400. WINAPI
  4401. SetFirmwareEnvironmentVariableW(
  4402. IN LPCWSTR lpName,
  4403. IN LPCWSTR lpGuid,
  4404. IN PVOID pValue,
  4405. IN DWORD nSize
  4406. );
  4407. #ifdef UNICODE
  4408. #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
  4409. #else
  4410. #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
  4411. #endif // !UNICODE
  4412. WINBASEAPI
  4413. VOID
  4414. WINAPI
  4415. OutputDebugStringA(
  4416. IN LPCSTR lpOutputString
  4417. );
  4418. WINBASEAPI
  4419. VOID
  4420. WINAPI
  4421. OutputDebugStringW(
  4422. IN LPCWSTR lpOutputString
  4423. );
  4424. #ifdef UNICODE
  4425. #define OutputDebugString OutputDebugStringW
  4426. #else
  4427. #define OutputDebugString OutputDebugStringA
  4428. #endif // !UNICODE
  4429. WINBASEAPI
  4430. HRSRC
  4431. WINAPI
  4432. FindResourceA(
  4433. IN HMODULE hModule,
  4434. IN LPCSTR lpName,
  4435. IN LPCSTR lpType
  4436. );
  4437. WINBASEAPI
  4438. HRSRC
  4439. WINAPI
  4440. FindResourceW(
  4441. IN HMODULE hModule,
  4442. IN LPCWSTR lpName,
  4443. IN LPCWSTR lpType
  4444. );
  4445. #ifdef UNICODE
  4446. #define FindResource FindResourceW
  4447. #else
  4448. #define FindResource FindResourceA
  4449. #endif // !UNICODE
  4450. WINBASEAPI
  4451. HRSRC
  4452. WINAPI
  4453. FindResourceExA(
  4454. IN HMODULE hModule,
  4455. IN LPCSTR lpType,
  4456. IN LPCSTR lpName,
  4457. IN WORD wLanguage
  4458. );
  4459. WINBASEAPI
  4460. HRSRC
  4461. WINAPI
  4462. FindResourceExW(
  4463. IN HMODULE hModule,
  4464. IN LPCWSTR lpType,
  4465. IN LPCWSTR lpName,
  4466. IN WORD wLanguage
  4467. );
  4468. #ifdef UNICODE
  4469. #define FindResourceEx FindResourceExW
  4470. #else
  4471. #define FindResourceEx FindResourceExA
  4472. #endif // !UNICODE
  4473. #ifdef STRICT
  4474. typedef BOOL (CALLBACK* ENUMRESTYPEPROCA)(HMODULE hModule, LPSTR lpType,
  4475. LONG_PTR lParam);
  4476. typedef BOOL (CALLBACK* ENUMRESTYPEPROCW)(HMODULE hModule, LPWSTR lpType,
  4477. LONG_PTR lParam);
  4478. #ifdef UNICODE
  4479. #define ENUMRESTYPEPROC ENUMRESTYPEPROCW
  4480. #else
  4481. #define ENUMRESTYPEPROC ENUMRESTYPEPROCA
  4482. #endif // !UNICODE
  4483. typedef BOOL (CALLBACK* ENUMRESNAMEPROCA)(HMODULE hModule, LPCSTR lpType,
  4484. LPSTR lpName, LONG_PTR lParam);
  4485. typedef BOOL (CALLBACK* ENUMRESNAMEPROCW)(HMODULE hModule, LPCWSTR lpType,
  4486. LPWSTR lpName, LONG_PTR lParam);
  4487. #ifdef UNICODE
  4488. #define ENUMRESNAMEPROC ENUMRESNAMEPROCW
  4489. #else
  4490. #define ENUMRESNAMEPROC ENUMRESNAMEPROCA
  4491. #endif // !UNICODE
  4492. typedef BOOL (CALLBACK* ENUMRESLANGPROCA)(HMODULE hModule, LPCSTR lpType,
  4493. LPCSTR lpName, WORD wLanguage, LONG_PTR lParam);
  4494. typedef BOOL (CALLBACK* ENUMRESLANGPROCW)(HMODULE hModule, LPCWSTR lpType,
  4495. LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam);
  4496. #ifdef UNICODE
  4497. #define ENUMRESLANGPROC ENUMRESLANGPROCW
  4498. #else
  4499. #define ENUMRESLANGPROC ENUMRESLANGPROCA
  4500. #endif // !UNICODE
  4501. #else
  4502. typedef FARPROC ENUMRESTYPEPROCA;
  4503. typedef FARPROC ENUMRESTYPEPROCW;
  4504. #ifdef UNICODE
  4505. typedef ENUMRESTYPEPROCW ENUMRESTYPEPROC;
  4506. #else
  4507. typedef ENUMRESTYPEPROCA ENUMRESTYPEPROC;
  4508. #endif // UNICODE
  4509. typedef FARPROC ENUMRESNAMEPROCA;
  4510. typedef FARPROC ENUMRESNAMEPROCW;
  4511. #ifdef UNICODE
  4512. typedef ENUMRESNAMEPROCW ENUMRESNAMEPROC;
  4513. #else
  4514. typedef ENUMRESNAMEPROCA ENUMRESNAMEPROC;
  4515. #endif // UNICODE
  4516. typedef FARPROC ENUMRESLANGPROCA;
  4517. typedef FARPROC ENUMRESLANGPROCW;
  4518. #ifdef UNICODE
  4519. typedef ENUMRESLANGPROCW ENUMRESLANGPROC;
  4520. #else
  4521. typedef ENUMRESLANGPROCA ENUMRESLANGPROC;
  4522. #endif // UNICODE
  4523. #endif
  4524. WINBASEAPI
  4525. BOOL
  4526. WINAPI
  4527. EnumResourceTypesA(
  4528. IN HMODULE hModule,
  4529. IN ENUMRESTYPEPROCA lpEnumFunc,
  4530. IN LONG_PTR lParam
  4531. );
  4532. WINBASEAPI
  4533. BOOL
  4534. WINAPI
  4535. EnumResourceTypesW(
  4536. IN HMODULE hModule,
  4537. IN ENUMRESTYPEPROCW lpEnumFunc,
  4538. IN LONG_PTR lParam
  4539. );
  4540. #ifdef UNICODE
  4541. #define EnumResourceTypes EnumResourceTypesW
  4542. #else
  4543. #define EnumResourceTypes EnumResourceTypesA
  4544. #endif // !UNICODE
  4545. WINBASEAPI
  4546. BOOL
  4547. WINAPI
  4548. EnumResourceNamesA(
  4549. IN HMODULE hModule,
  4550. IN LPCSTR lpType,
  4551. IN ENUMRESNAMEPROCA lpEnumFunc,
  4552. IN LONG_PTR lParam
  4553. );
  4554. WINBASEAPI
  4555. BOOL
  4556. WINAPI
  4557. EnumResourceNamesW(
  4558. IN HMODULE hModule,
  4559. IN LPCWSTR lpType,
  4560. IN ENUMRESNAMEPROCW lpEnumFunc,
  4561. IN LONG_PTR lParam
  4562. );
  4563. #ifdef UNICODE
  4564. #define EnumResourceNames EnumResourceNamesW
  4565. #else
  4566. #define EnumResourceNames EnumResourceNamesA
  4567. #endif // !UNICODE
  4568. WINBASEAPI
  4569. BOOL
  4570. WINAPI
  4571. EnumResourceLanguagesA(
  4572. IN HMODULE hModule,
  4573. IN LPCSTR lpType,
  4574. IN LPCSTR lpName,
  4575. IN ENUMRESLANGPROCA lpEnumFunc,
  4576. IN LONG_PTR lParam
  4577. );
  4578. WINBASEAPI
  4579. BOOL
  4580. WINAPI
  4581. EnumResourceLanguagesW(
  4582. IN HMODULE hModule,
  4583. IN LPCWSTR lpType,
  4584. IN LPCWSTR lpName,
  4585. IN ENUMRESLANGPROCW lpEnumFunc,
  4586. IN LONG_PTR lParam
  4587. );
  4588. #ifdef UNICODE
  4589. #define EnumResourceLanguages EnumResourceLanguagesW
  4590. #else
  4591. #define EnumResourceLanguages EnumResourceLanguagesA
  4592. #endif // !UNICODE
  4593. WINBASEAPI
  4594. HANDLE
  4595. WINAPI
  4596. BeginUpdateResourceA(
  4597. IN LPCSTR pFileName,
  4598. IN BOOL bDeleteExistingResources
  4599. );
  4600. WINBASEAPI
  4601. HANDLE
  4602. WINAPI
  4603. BeginUpdateResourceW(
  4604. IN LPCWSTR pFileName,
  4605. IN BOOL bDeleteExistingResources
  4606. );
  4607. #ifdef UNICODE
  4608. #define BeginUpdateResource BeginUpdateResourceW
  4609. #else
  4610. #define BeginUpdateResource BeginUpdateResourceA
  4611. #endif // !UNICODE
  4612. WINBASEAPI
  4613. BOOL
  4614. WINAPI
  4615. UpdateResourceA(
  4616. IN HANDLE hUpdate,
  4617. IN LPCSTR lpType,
  4618. IN LPCSTR lpName,
  4619. IN WORD wLanguage,
  4620. IN LPVOID lpData,
  4621. IN DWORD cbData
  4622. );
  4623. WINBASEAPI
  4624. BOOL
  4625. WINAPI
  4626. UpdateResourceW(
  4627. IN HANDLE hUpdate,
  4628. IN LPCWSTR lpType,
  4629. IN LPCWSTR lpName,
  4630. IN WORD wLanguage,
  4631. IN LPVOID lpData,
  4632. IN DWORD cbData
  4633. );
  4634. #ifdef UNICODE
  4635. #define UpdateResource UpdateResourceW
  4636. #else
  4637. #define UpdateResource UpdateResourceA
  4638. #endif // !UNICODE
  4639. WINBASEAPI
  4640. BOOL
  4641. WINAPI
  4642. EndUpdateResourceA(
  4643. IN HANDLE hUpdate,
  4644. IN BOOL fDiscard
  4645. );
  4646. WINBASEAPI
  4647. BOOL
  4648. WINAPI
  4649. EndUpdateResourceW(
  4650. IN HANDLE hUpdate,
  4651. IN BOOL fDiscard
  4652. );
  4653. #ifdef UNICODE
  4654. #define EndUpdateResource EndUpdateResourceW
  4655. #else
  4656. #define EndUpdateResource EndUpdateResourceA
  4657. #endif // !UNICODE
  4658. WINBASEAPI
  4659. ATOM
  4660. WINAPI
  4661. GlobalAddAtomA(
  4662. IN LPCSTR lpString
  4663. );
  4664. WINBASEAPI
  4665. ATOM
  4666. WINAPI
  4667. GlobalAddAtomW(
  4668. IN LPCWSTR lpString
  4669. );
  4670. #ifdef UNICODE
  4671. #define GlobalAddAtom GlobalAddAtomW
  4672. #else
  4673. #define GlobalAddAtom GlobalAddAtomA
  4674. #endif // !UNICODE
  4675. WINBASEAPI
  4676. ATOM
  4677. WINAPI
  4678. GlobalFindAtomA(
  4679. IN LPCSTR lpString
  4680. );
  4681. WINBASEAPI
  4682. ATOM
  4683. WINAPI
  4684. GlobalFindAtomW(
  4685. IN LPCWSTR lpString
  4686. );
  4687. #ifdef UNICODE
  4688. #define GlobalFindAtom GlobalFindAtomW
  4689. #else
  4690. #define GlobalFindAtom GlobalFindAtomA
  4691. #endif // !UNICODE
  4692. WINBASEAPI
  4693. UINT
  4694. WINAPI
  4695. GlobalGetAtomNameA(
  4696. IN ATOM nAtom,
  4697. OUT LPSTR lpBuffer,
  4698. IN int nSize
  4699. );
  4700. WINBASEAPI
  4701. UINT
  4702. WINAPI
  4703. GlobalGetAtomNameW(
  4704. IN ATOM nAtom,
  4705. OUT LPWSTR lpBuffer,
  4706. IN int nSize
  4707. );
  4708. #ifdef UNICODE
  4709. #define GlobalGetAtomName GlobalGetAtomNameW
  4710. #else
  4711. #define GlobalGetAtomName GlobalGetAtomNameA
  4712. #endif // !UNICODE
  4713. WINBASEAPI
  4714. ATOM
  4715. WINAPI
  4716. AddAtomA(
  4717. IN LPCSTR lpString
  4718. );
  4719. WINBASEAPI
  4720. ATOM
  4721. WINAPI
  4722. AddAtomW(
  4723. IN LPCWSTR lpString
  4724. );
  4725. #ifdef UNICODE
  4726. #define AddAtom AddAtomW
  4727. #else
  4728. #define AddAtom AddAtomA
  4729. #endif // !UNICODE
  4730. WINBASEAPI
  4731. ATOM
  4732. WINAPI
  4733. FindAtomA(
  4734. IN LPCSTR lpString
  4735. );
  4736. WINBASEAPI
  4737. ATOM
  4738. WINAPI
  4739. FindAtomW(
  4740. IN LPCWSTR lpString
  4741. );
  4742. #ifdef UNICODE
  4743. #define FindAtom FindAtomW
  4744. #else
  4745. #define FindAtom FindAtomA
  4746. #endif // !UNICODE
  4747. WINBASEAPI
  4748. UINT
  4749. WINAPI
  4750. GetAtomNameA(
  4751. IN ATOM nAtom,
  4752. OUT LPSTR lpBuffer,
  4753. IN int nSize
  4754. );
  4755. WINBASEAPI
  4756. UINT
  4757. WINAPI
  4758. GetAtomNameW(
  4759. IN ATOM nAtom,
  4760. OUT LPWSTR lpBuffer,
  4761. IN int nSize
  4762. );
  4763. #ifdef UNICODE
  4764. #define GetAtomName GetAtomNameW
  4765. #else
  4766. #define GetAtomName GetAtomNameA
  4767. #endif // !UNICODE
  4768. WINBASEAPI
  4769. UINT
  4770. WINAPI
  4771. GetProfileIntA(
  4772. IN LPCSTR lpAppName,
  4773. IN LPCSTR lpKeyName,
  4774. IN INT nDefault
  4775. );
  4776. WINBASEAPI
  4777. UINT
  4778. WINAPI
  4779. GetProfileIntW(
  4780. IN LPCWSTR lpAppName,
  4781. IN LPCWSTR lpKeyName,
  4782. IN INT nDefault
  4783. );
  4784. #ifdef UNICODE
  4785. #define GetProfileInt GetProfileIntW
  4786. #else
  4787. #define GetProfileInt GetProfileIntA
  4788. #endif // !UNICODE
  4789. WINBASEAPI
  4790. DWORD
  4791. WINAPI
  4792. GetProfileStringA(
  4793. IN LPCSTR lpAppName,
  4794. IN LPCSTR lpKeyName,
  4795. IN LPCSTR lpDefault,
  4796. OUT LPSTR lpReturnedString,
  4797. IN DWORD nSize
  4798. );
  4799. WINBASEAPI
  4800. DWORD
  4801. WINAPI
  4802. GetProfileStringW(
  4803. IN LPCWSTR lpAppName,
  4804. IN LPCWSTR lpKeyName,
  4805. IN LPCWSTR lpDefault,
  4806. OUT LPWSTR lpReturnedString,
  4807. IN DWORD nSize
  4808. );
  4809. #ifdef UNICODE
  4810. #define GetProfileString GetProfileStringW
  4811. #else
  4812. #define GetProfileString GetProfileStringA
  4813. #endif // !UNICODE
  4814. WINBASEAPI
  4815. BOOL
  4816. WINAPI
  4817. WriteProfileStringA(
  4818. IN LPCSTR lpAppName,
  4819. IN LPCSTR lpKeyName,
  4820. IN LPCSTR lpString
  4821. );
  4822. WINBASEAPI
  4823. BOOL
  4824. WINAPI
  4825. WriteProfileStringW(
  4826. IN LPCWSTR lpAppName,
  4827. IN LPCWSTR lpKeyName,
  4828. IN LPCWSTR lpString
  4829. );
  4830. #ifdef UNICODE
  4831. #define WriteProfileString WriteProfileStringW
  4832. #else
  4833. #define WriteProfileString WriteProfileStringA
  4834. #endif // !UNICODE
  4835. WINBASEAPI
  4836. DWORD
  4837. WINAPI
  4838. GetProfileSectionA(
  4839. IN LPCSTR lpAppName,
  4840. OUT LPSTR lpReturnedString,
  4841. IN DWORD nSize
  4842. );
  4843. WINBASEAPI
  4844. DWORD
  4845. WINAPI
  4846. GetProfileSectionW(
  4847. IN LPCWSTR lpAppName,
  4848. OUT LPWSTR lpReturnedString,
  4849. IN DWORD nSize
  4850. );
  4851. #ifdef UNICODE
  4852. #define GetProfileSection GetProfileSectionW
  4853. #else
  4854. #define GetProfileSection GetProfileSectionA
  4855. #endif // !UNICODE
  4856. WINBASEAPI
  4857. BOOL
  4858. WINAPI
  4859. WriteProfileSectionA(
  4860. IN LPCSTR lpAppName,
  4861. IN LPCSTR lpString
  4862. );
  4863. WINBASEAPI
  4864. BOOL
  4865. WINAPI
  4866. WriteProfileSectionW(
  4867. IN LPCWSTR lpAppName,
  4868. IN LPCWSTR lpString
  4869. );
  4870. #ifdef UNICODE
  4871. #define WriteProfileSection WriteProfileSectionW
  4872. #else
  4873. #define WriteProfileSection WriteProfileSectionA
  4874. #endif // !UNICODE
  4875. WINBASEAPI
  4876. UINT
  4877. WINAPI
  4878. GetPrivateProfileIntA(
  4879. IN LPCSTR lpAppName,
  4880. IN LPCSTR lpKeyName,
  4881. IN INT nDefault,
  4882. IN LPCSTR lpFileName
  4883. );
  4884. WINBASEAPI
  4885. UINT
  4886. WINAPI
  4887. GetPrivateProfileIntW(
  4888. IN LPCWSTR lpAppName,
  4889. IN LPCWSTR lpKeyName,
  4890. IN INT nDefault,
  4891. IN LPCWSTR lpFileName
  4892. );
  4893. #ifdef UNICODE
  4894. #define GetPrivateProfileInt GetPrivateProfileIntW
  4895. #else
  4896. #define GetPrivateProfileInt GetPrivateProfileIntA
  4897. #endif // !UNICODE
  4898. WINBASEAPI
  4899. DWORD
  4900. WINAPI
  4901. GetPrivateProfileStringA(
  4902. IN LPCSTR lpAppName,
  4903. IN LPCSTR lpKeyName,
  4904. IN LPCSTR lpDefault,
  4905. OUT LPSTR lpReturnedString,
  4906. IN DWORD nSize,
  4907. IN LPCSTR lpFileName
  4908. );
  4909. WINBASEAPI
  4910. DWORD
  4911. WINAPI
  4912. GetPrivateProfileStringW(
  4913. IN LPCWSTR lpAppName,
  4914. IN LPCWSTR lpKeyName,
  4915. IN LPCWSTR lpDefault,
  4916. OUT LPWSTR lpReturnedString,
  4917. IN DWORD nSize,
  4918. IN LPCWSTR lpFileName
  4919. );
  4920. #ifdef UNICODE
  4921. #define GetPrivateProfileString GetPrivateProfileStringW
  4922. #else
  4923. #define GetPrivateProfileString GetPrivateProfileStringA
  4924. #endif // !UNICODE
  4925. WINBASEAPI
  4926. BOOL
  4927. WINAPI
  4928. WritePrivateProfileStringA(
  4929. IN LPCSTR lpAppName,
  4930. IN LPCSTR lpKeyName,
  4931. IN LPCSTR lpString,
  4932. IN LPCSTR lpFileName
  4933. );
  4934. WINBASEAPI
  4935. BOOL
  4936. WINAPI
  4937. WritePrivateProfileStringW(
  4938. IN LPCWSTR lpAppName,
  4939. IN LPCWSTR lpKeyName,
  4940. IN LPCWSTR lpString,
  4941. IN LPCWSTR lpFileName
  4942. );
  4943. #ifdef UNICODE
  4944. #define WritePrivateProfileString WritePrivateProfileStringW
  4945. #else
  4946. #define WritePrivateProfileString WritePrivateProfileStringA
  4947. #endif // !UNICODE
  4948. WINBASEAPI
  4949. DWORD
  4950. WINAPI
  4951. GetPrivateProfileSectionA(
  4952. IN LPCSTR lpAppName,
  4953. OUT LPSTR lpReturnedString,
  4954. IN DWORD nSize,
  4955. IN LPCSTR lpFileName
  4956. );
  4957. WINBASEAPI
  4958. DWORD
  4959. WINAPI
  4960. GetPrivateProfileSectionW(
  4961. IN LPCWSTR lpAppName,
  4962. OUT LPWSTR lpReturnedString,
  4963. IN DWORD nSize,
  4964. IN LPCWSTR lpFileName
  4965. );
  4966. #ifdef UNICODE
  4967. #define GetPrivateProfileSection GetPrivateProfileSectionW
  4968. #else
  4969. #define GetPrivateProfileSection GetPrivateProfileSectionA
  4970. #endif // !UNICODE
  4971. WINBASEAPI
  4972. BOOL
  4973. WINAPI
  4974. WritePrivateProfileSectionA(
  4975. IN LPCSTR lpAppName,
  4976. IN LPCSTR lpString,
  4977. IN LPCSTR lpFileName
  4978. );
  4979. WINBASEAPI
  4980. BOOL
  4981. WINAPI
  4982. WritePrivateProfileSectionW(
  4983. IN LPCWSTR lpAppName,
  4984. IN LPCWSTR lpString,
  4985. IN LPCWSTR lpFileName
  4986. );
  4987. #ifdef UNICODE
  4988. #define WritePrivateProfileSection WritePrivateProfileSectionW
  4989. #else
  4990. #define WritePrivateProfileSection WritePrivateProfileSectionA
  4991. #endif // !UNICODE
  4992. WINBASEAPI
  4993. DWORD
  4994. WINAPI
  4995. GetPrivateProfileSectionNamesA(
  4996. OUT LPSTR lpszReturnBuffer,
  4997. IN DWORD nSize,
  4998. IN LPCSTR lpFileName
  4999. );
  5000. WINBASEAPI
  5001. DWORD
  5002. WINAPI
  5003. GetPrivateProfileSectionNamesW(
  5004. OUT LPWSTR lpszReturnBuffer,
  5005. IN DWORD nSize,
  5006. IN LPCWSTR lpFileName
  5007. );
  5008. #ifdef UNICODE
  5009. #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
  5010. #else
  5011. #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
  5012. #endif // !UNICODE
  5013. WINBASEAPI
  5014. BOOL
  5015. WINAPI
  5016. GetPrivateProfileStructA(
  5017. IN LPCSTR lpszSection,
  5018. IN LPCSTR lpszKey,
  5019. OUT LPVOID lpStruct,
  5020. IN UINT uSizeStruct,
  5021. IN LPCSTR szFile
  5022. );
  5023. WINBASEAPI
  5024. BOOL
  5025. WINAPI
  5026. GetPrivateProfileStructW(
  5027. IN LPCWSTR lpszSection,
  5028. IN LPCWSTR lpszKey,
  5029. OUT LPVOID lpStruct,
  5030. IN UINT uSizeStruct,
  5031. IN LPCWSTR szFile
  5032. );
  5033. #ifdef UNICODE
  5034. #define GetPrivateProfileStruct GetPrivateProfileStructW
  5035. #else
  5036. #define GetPrivateProfileStruct GetPrivateProfileStructA
  5037. #endif // !UNICODE
  5038. WINBASEAPI
  5039. BOOL
  5040. WINAPI
  5041. WritePrivateProfileStructA(
  5042. IN LPCSTR lpszSection,
  5043. IN LPCSTR lpszKey,
  5044. IN LPVOID lpStruct,
  5045. IN UINT uSizeStruct,
  5046. IN LPCSTR szFile
  5047. );
  5048. WINBASEAPI
  5049. BOOL
  5050. WINAPI
  5051. WritePrivateProfileStructW(
  5052. IN LPCWSTR lpszSection,
  5053. IN LPCWSTR lpszKey,
  5054. IN LPVOID lpStruct,
  5055. IN UINT uSizeStruct,
  5056. IN LPCWSTR szFile
  5057. );
  5058. #ifdef UNICODE
  5059. #define WritePrivateProfileStruct WritePrivateProfileStructW
  5060. #else
  5061. #define WritePrivateProfileStruct WritePrivateProfileStructA
  5062. #endif // !UNICODE
  5063. WINBASEAPI
  5064. UINT
  5065. WINAPI
  5066. GetDriveTypeA(
  5067. IN LPCSTR lpRootPathName
  5068. );
  5069. WINBASEAPI
  5070. UINT
  5071. WINAPI
  5072. GetDriveTypeW(
  5073. IN LPCWSTR lpRootPathName
  5074. );
  5075. #ifdef UNICODE
  5076. #define GetDriveType GetDriveTypeW
  5077. #else
  5078. #define GetDriveType GetDriveTypeA
  5079. #endif // !UNICODE
  5080. WINBASEAPI
  5081. UINT
  5082. WINAPI
  5083. GetSystemDirectoryA(
  5084. OUT LPSTR lpBuffer,
  5085. IN UINT uSize
  5086. );
  5087. WINBASEAPI
  5088. UINT
  5089. WINAPI
  5090. GetSystemDirectoryW(
  5091. OUT LPWSTR lpBuffer,
  5092. IN UINT uSize
  5093. );
  5094. #ifdef UNICODE
  5095. #define GetSystemDirectory GetSystemDirectoryW
  5096. #else
  5097. #define GetSystemDirectory GetSystemDirectoryA
  5098. #endif // !UNICODE
  5099. WINBASEAPI
  5100. DWORD
  5101. WINAPI
  5102. GetTempPathA(
  5103. IN DWORD nBufferLength,
  5104. OUT LPSTR lpBuffer
  5105. );
  5106. WINBASEAPI
  5107. DWORD
  5108. WINAPI
  5109. GetTempPathW(
  5110. IN DWORD nBufferLength,
  5111. OUT LPWSTR lpBuffer
  5112. );
  5113. #ifdef UNICODE
  5114. #define GetTempPath GetTempPathW
  5115. #else
  5116. #define GetTempPath GetTempPathA
  5117. #endif // !UNICODE
  5118. WINBASEAPI
  5119. UINT
  5120. WINAPI
  5121. GetTempFileNameA(
  5122. IN LPCSTR lpPathName,
  5123. IN LPCSTR lpPrefixString,
  5124. IN UINT uUnique,
  5125. OUT LPSTR lpTempFileName
  5126. );
  5127. WINBASEAPI
  5128. UINT
  5129. WINAPI
  5130. GetTempFileNameW(
  5131. IN LPCWSTR lpPathName,
  5132. IN LPCWSTR lpPrefixString,
  5133. IN UINT uUnique,
  5134. OUT LPWSTR lpTempFileName
  5135. );
  5136. #ifdef UNICODE
  5137. #define GetTempFileName GetTempFileNameW
  5138. #else
  5139. #define GetTempFileName GetTempFileNameA
  5140. #endif // !UNICODE
  5141. WINBASEAPI
  5142. UINT
  5143. WINAPI
  5144. GetWindowsDirectoryA(
  5145. OUT LPSTR lpBuffer,
  5146. IN UINT uSize
  5147. );
  5148. WINBASEAPI
  5149. UINT
  5150. WINAPI
  5151. GetWindowsDirectoryW(
  5152. OUT LPWSTR lpBuffer,
  5153. IN UINT uSize
  5154. );
  5155. #ifdef UNICODE
  5156. #define GetWindowsDirectory GetWindowsDirectoryW
  5157. #else
  5158. #define GetWindowsDirectory GetWindowsDirectoryA
  5159. #endif // !UNICODE
  5160. WINBASEAPI
  5161. UINT
  5162. WINAPI
  5163. GetSystemWindowsDirectoryA(
  5164. OUT LPSTR lpBuffer,
  5165. IN UINT uSize
  5166. );
  5167. WINBASEAPI
  5168. UINT
  5169. WINAPI
  5170. GetSystemWindowsDirectoryW(
  5171. OUT LPWSTR lpBuffer,
  5172. IN UINT uSize
  5173. );
  5174. #ifdef UNICODE
  5175. #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
  5176. #else
  5177. #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
  5178. #endif // !UNICODE
  5179. #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY" is a bit long.
  5180. #if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECTORY)
  5181. WINBASEAPI
  5182. UINT
  5183. WINAPI
  5184. GetSystemWow64DirectoryA(
  5185. OUT LPSTR lpBuffer,
  5186. IN UINT uSize
  5187. );
  5188. WINBASEAPI
  5189. UINT
  5190. WINAPI
  5191. GetSystemWow64DirectoryW(
  5192. OUT LPWSTR lpBuffer,
  5193. IN UINT uSize
  5194. );
  5195. #ifdef UNICODE
  5196. #define GetSystemWow64Directory GetSystemWow64DirectoryW
  5197. #else
  5198. #define GetSystemWow64Directory GetSystemWow64DirectoryA
  5199. #endif // !UNICODE
  5200. //
  5201. // for GetProcAddress
  5202. //
  5203. typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_A)(OUT LPSTR lpBuffer, UINT uSize);
  5204. typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_W)(OUT LPWSTR lpBuffer, UINT uSize);
  5205. //
  5206. // GetProcAddress only accepts GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A,
  5207. // GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A, GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A.
  5208. // The others are if you want to use the strings in some other way.
  5209. //
  5210. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A "GetSystemWow64DirectoryA"
  5211. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W L"GetSystemWow64DirectoryA"
  5212. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T TEXT("GetSystemWow64DirectoryA")
  5213. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A "GetSystemWow64DirectoryW"
  5214. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W L"GetSystemWow64DirectoryW"
  5215. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T TEXT("GetSystemWow64DirectoryW")
  5216. #ifdef UNICODE
  5217. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A
  5218. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W
  5219. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T
  5220. #else
  5221. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A
  5222. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W
  5223. #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T
  5224. #endif
  5225. #endif // _WIN32_WINNT >= 0x0501
  5226. #endif
  5227. WINBASEAPI
  5228. BOOL
  5229. WINAPI
  5230. SetCurrentDirectoryA(
  5231. IN LPCSTR lpPathName
  5232. );
  5233. WINBASEAPI
  5234. BOOL
  5235. WINAPI
  5236. SetCurrentDirectoryW(
  5237. IN LPCWSTR lpPathName
  5238. );
  5239. #ifdef UNICODE
  5240. #define SetCurrentDirectory SetCurrentDirectoryW
  5241. #else
  5242. #define SetCurrentDirectory SetCurrentDirectoryA
  5243. #endif // !UNICODE
  5244. WINBASEAPI
  5245. DWORD
  5246. WINAPI
  5247. GetCurrentDirectoryA(
  5248. IN DWORD nBufferLength,
  5249. OUT LPSTR lpBuffer
  5250. );
  5251. WINBASEAPI
  5252. DWORD
  5253. WINAPI
  5254. GetCurrentDirectoryW(
  5255. IN DWORD nBufferLength,
  5256. OUT LPWSTR lpBuffer
  5257. );
  5258. #ifdef UNICODE
  5259. #define GetCurrentDirectory GetCurrentDirectoryW
  5260. #else
  5261. #define GetCurrentDirectory GetCurrentDirectoryA
  5262. #endif // !UNICODE
  5263. WINBASEAPI
  5264. BOOL
  5265. WINAPI
  5266. GetDiskFreeSpaceA(
  5267. IN LPCSTR lpRootPathName,
  5268. OUT LPDWORD lpSectorsPerCluster,
  5269. OUT LPDWORD lpBytesPerSector,
  5270. OUT LPDWORD lpNumberOfFreeClusters,
  5271. OUT LPDWORD lpTotalNumberOfClusters
  5272. );
  5273. WINBASEAPI
  5274. BOOL
  5275. WINAPI
  5276. GetDiskFreeSpaceW(
  5277. IN LPCWSTR lpRootPathName,
  5278. OUT LPDWORD lpSectorsPerCluster,
  5279. OUT LPDWORD lpBytesPerSector,
  5280. OUT LPDWORD lpNumberOfFreeClusters,
  5281. OUT LPDWORD lpTotalNumberOfClusters
  5282. );
  5283. #ifdef UNICODE
  5284. #define GetDiskFreeSpace GetDiskFreeSpaceW
  5285. #else
  5286. #define GetDiskFreeSpace GetDiskFreeSpaceA
  5287. #endif // !UNICODE
  5288. WINBASEAPI
  5289. BOOL
  5290. WINAPI
  5291. GetDiskFreeSpaceExA(
  5292. IN LPCSTR lpDirectoryName,
  5293. OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller,
  5294. OUT PULARGE_INTEGER lpTotalNumberOfBytes,
  5295. OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes
  5296. );
  5297. WINBASEAPI
  5298. BOOL
  5299. WINAPI
  5300. GetDiskFreeSpaceExW(
  5301. IN LPCWSTR lpDirectoryName,
  5302. OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller,
  5303. OUT PULARGE_INTEGER lpTotalNumberOfBytes,
  5304. OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes
  5305. );
  5306. #ifdef UNICODE
  5307. #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
  5308. #else
  5309. #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
  5310. #endif // !UNICODE
  5311. WINBASEAPI
  5312. BOOL
  5313. WINAPI
  5314. CreateDirectoryA(
  5315. IN LPCSTR lpPathName,
  5316. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5317. );
  5318. WINBASEAPI
  5319. BOOL
  5320. WINAPI
  5321. CreateDirectoryW(
  5322. IN LPCWSTR lpPathName,
  5323. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5324. );
  5325. #ifdef UNICODE
  5326. #define CreateDirectory CreateDirectoryW
  5327. #else
  5328. #define CreateDirectory CreateDirectoryA
  5329. #endif // !UNICODE
  5330. WINBASEAPI
  5331. BOOL
  5332. WINAPI
  5333. CreateDirectoryExA(
  5334. IN LPCSTR lpTemplateDirectory,
  5335. IN LPCSTR lpNewDirectory,
  5336. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5337. );
  5338. WINBASEAPI
  5339. BOOL
  5340. WINAPI
  5341. CreateDirectoryExW(
  5342. IN LPCWSTR lpTemplateDirectory,
  5343. IN LPCWSTR lpNewDirectory,
  5344. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5345. );
  5346. #ifdef UNICODE
  5347. #define CreateDirectoryEx CreateDirectoryExW
  5348. #else
  5349. #define CreateDirectoryEx CreateDirectoryExA
  5350. #endif // !UNICODE
  5351. WINBASEAPI
  5352. BOOL
  5353. WINAPI
  5354. RemoveDirectoryA(
  5355. IN LPCSTR lpPathName
  5356. );
  5357. WINBASEAPI
  5358. BOOL
  5359. WINAPI
  5360. RemoveDirectoryW(
  5361. IN LPCWSTR lpPathName
  5362. );
  5363. #ifdef UNICODE
  5364. #define RemoveDirectory RemoveDirectoryW
  5365. #else
  5366. #define RemoveDirectory RemoveDirectoryA
  5367. #endif // !UNICODE
  5368. WINBASEAPI
  5369. DWORD
  5370. WINAPI
  5371. GetFullPathNameA(
  5372. IN LPCSTR lpFileName,
  5373. IN DWORD nBufferLength,
  5374. OUT LPSTR lpBuffer,
  5375. OUT LPSTR *lpFilePart
  5376. );
  5377. WINBASEAPI
  5378. DWORD
  5379. WINAPI
  5380. GetFullPathNameW(
  5381. IN LPCWSTR lpFileName,
  5382. IN DWORD nBufferLength,
  5383. OUT LPWSTR lpBuffer,
  5384. OUT LPWSTR *lpFilePart
  5385. );
  5386. #ifdef UNICODE
  5387. #define GetFullPathName GetFullPathNameW
  5388. #else
  5389. #define GetFullPathName GetFullPathNameA
  5390. #endif // !UNICODE
  5391. #define DDD_RAW_TARGET_PATH 0x00000001
  5392. #define DDD_REMOVE_DEFINITION 0x00000002
  5393. #define DDD_EXACT_MATCH_ON_REMOVE 0x00000004
  5394. #define DDD_NO_BROADCAST_SYSTEM 0x00000008
  5395. #define DDD_LUID_BROADCAST_DRIVE 0x00000010
  5396. WINBASEAPI
  5397. BOOL
  5398. WINAPI
  5399. DefineDosDeviceA(
  5400. IN DWORD dwFlags,
  5401. IN LPCSTR lpDeviceName,
  5402. IN LPCSTR lpTargetPath
  5403. );
  5404. WINBASEAPI
  5405. BOOL
  5406. WINAPI
  5407. DefineDosDeviceW(
  5408. IN DWORD dwFlags,
  5409. IN LPCWSTR lpDeviceName,
  5410. IN LPCWSTR lpTargetPath
  5411. );
  5412. #ifdef UNICODE
  5413. #define DefineDosDevice DefineDosDeviceW
  5414. #else
  5415. #define DefineDosDevice DefineDosDeviceA
  5416. #endif // !UNICODE
  5417. WINBASEAPI
  5418. DWORD
  5419. WINAPI
  5420. QueryDosDeviceA(
  5421. IN LPCSTR lpDeviceName,
  5422. OUT LPSTR lpTargetPath,
  5423. IN DWORD ucchMax
  5424. );
  5425. WINBASEAPI
  5426. DWORD
  5427. WINAPI
  5428. QueryDosDeviceW(
  5429. IN LPCWSTR lpDeviceName,
  5430. OUT LPWSTR lpTargetPath,
  5431. IN DWORD ucchMax
  5432. );
  5433. #ifdef UNICODE
  5434. #define QueryDosDevice QueryDosDeviceW
  5435. #else
  5436. #define QueryDosDevice QueryDosDeviceA
  5437. #endif // !UNICODE
  5438. #define EXPAND_LOCAL_DRIVES
  5439. WINBASEAPI
  5440. HANDLE
  5441. WINAPI
  5442. CreateFileA(
  5443. IN LPCSTR lpFileName,
  5444. IN DWORD dwDesiredAccess,
  5445. IN DWORD dwShareMode,
  5446. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  5447. IN DWORD dwCreationDisposition,
  5448. IN DWORD dwFlagsAndAttributes,
  5449. IN HANDLE hTemplateFile
  5450. );
  5451. WINBASEAPI
  5452. HANDLE
  5453. WINAPI
  5454. CreateFileW(
  5455. IN LPCWSTR lpFileName,
  5456. IN DWORD dwDesiredAccess,
  5457. IN DWORD dwShareMode,
  5458. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  5459. IN DWORD dwCreationDisposition,
  5460. IN DWORD dwFlagsAndAttributes,
  5461. IN HANDLE hTemplateFile
  5462. );
  5463. #ifdef UNICODE
  5464. #define CreateFile CreateFileW
  5465. #else
  5466. #define CreateFile CreateFileA
  5467. #endif // !UNICODE
  5468. WINBASEAPI
  5469. BOOL
  5470. WINAPI
  5471. SetFileAttributesA(
  5472. IN LPCSTR lpFileName,
  5473. IN DWORD dwFileAttributes
  5474. );
  5475. WINBASEAPI
  5476. BOOL
  5477. WINAPI
  5478. SetFileAttributesW(
  5479. IN LPCWSTR lpFileName,
  5480. IN DWORD dwFileAttributes
  5481. );
  5482. #ifdef UNICODE
  5483. #define SetFileAttributes SetFileAttributesW
  5484. #else
  5485. #define SetFileAttributes SetFileAttributesA
  5486. #endif // !UNICODE
  5487. WINBASEAPI
  5488. DWORD
  5489. WINAPI
  5490. GetFileAttributesA(
  5491. IN LPCSTR lpFileName
  5492. );
  5493. WINBASEAPI
  5494. DWORD
  5495. WINAPI
  5496. GetFileAttributesW(
  5497. IN LPCWSTR lpFileName
  5498. );
  5499. #ifdef UNICODE
  5500. #define GetFileAttributes GetFileAttributesW
  5501. #else
  5502. #define GetFileAttributes GetFileAttributesA
  5503. #endif // !UNICODE
  5504. typedef enum _GET_FILEEX_INFO_LEVELS {
  5505. GetFileExInfoStandard,
  5506. GetFileExMaxInfoLevel
  5507. } GET_FILEEX_INFO_LEVELS;
  5508. WINBASEAPI
  5509. BOOL
  5510. WINAPI
  5511. GetFileAttributesExA(
  5512. IN LPCSTR lpFileName,
  5513. IN GET_FILEEX_INFO_LEVELS fInfoLevelId,
  5514. OUT LPVOID lpFileInformation
  5515. );
  5516. WINBASEAPI
  5517. BOOL
  5518. WINAPI
  5519. GetFileAttributesExW(
  5520. IN LPCWSTR lpFileName,
  5521. IN GET_FILEEX_INFO_LEVELS fInfoLevelId,
  5522. OUT LPVOID lpFileInformation
  5523. );
  5524. #ifdef UNICODE
  5525. #define GetFileAttributesEx GetFileAttributesExW
  5526. #else
  5527. #define GetFileAttributesEx GetFileAttributesExA
  5528. #endif // !UNICODE
  5529. WINBASEAPI
  5530. DWORD
  5531. WINAPI
  5532. GetCompressedFileSizeA(
  5533. IN LPCSTR lpFileName,
  5534. OUT LPDWORD lpFileSizeHigh
  5535. );
  5536. WINBASEAPI
  5537. DWORD
  5538. WINAPI
  5539. GetCompressedFileSizeW(
  5540. IN LPCWSTR lpFileName,
  5541. OUT LPDWORD lpFileSizeHigh
  5542. );
  5543. #ifdef UNICODE
  5544. #define GetCompressedFileSize GetCompressedFileSizeW
  5545. #else
  5546. #define GetCompressedFileSize GetCompressedFileSizeA
  5547. #endif // !UNICODE
  5548. WINBASEAPI
  5549. BOOL
  5550. WINAPI
  5551. DeleteFileA(
  5552. IN LPCSTR lpFileName
  5553. );
  5554. WINBASEAPI
  5555. BOOL
  5556. WINAPI
  5557. DeleteFileW(
  5558. IN LPCWSTR lpFileName
  5559. );
  5560. #ifdef UNICODE
  5561. #define DeleteFile DeleteFileW
  5562. #else
  5563. #define DeleteFile DeleteFileA
  5564. #endif // !UNICODE
  5565. #if _WIN32_WINNT >= 0x0501
  5566. WINBASEAPI
  5567. BOOL
  5568. WINAPI
  5569. CheckNameLegalDOS8Dot3A(
  5570. IN LPCSTR lpName,
  5571. OUT LPSTR lpOemName OPTIONAL,
  5572. IN DWORD OemNameSize OPTIONAL,
  5573. OUT PBOOL pbNameContainsSpaces OPTIONAL,
  5574. OUT PBOOL pbNameLegal
  5575. );
  5576. WINBASEAPI
  5577. BOOL
  5578. WINAPI
  5579. CheckNameLegalDOS8Dot3W(
  5580. IN LPCWSTR lpName,
  5581. OUT LPSTR lpOemName OPTIONAL,
  5582. IN DWORD OemNameSize OPTIONAL,
  5583. OUT PBOOL pbNameContainsSpaces OPTIONAL,
  5584. OUT PBOOL pbNameLegal
  5585. );
  5586. #ifdef UNICODE
  5587. #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
  5588. #else
  5589. #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
  5590. #endif // !UNICODE
  5591. #endif // (_WIN32_WINNT >= 0x0501)
  5592. #if(_WIN32_WINNT >= 0x0400)
  5593. typedef enum _FINDEX_INFO_LEVELS {
  5594. FindExInfoStandard,
  5595. FindExInfoMaxInfoLevel
  5596. } FINDEX_INFO_LEVELS;
  5597. typedef enum _FINDEX_SEARCH_OPS {
  5598. FindExSearchNameMatch,
  5599. FindExSearchLimitToDirectories,
  5600. FindExSearchLimitToDevices,
  5601. FindExSearchMaxSearchOp
  5602. } FINDEX_SEARCH_OPS;
  5603. #define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001
  5604. WINBASEAPI
  5605. HANDLE
  5606. WINAPI
  5607. FindFirstFileExA(
  5608. IN LPCSTR lpFileName,
  5609. IN FINDEX_INFO_LEVELS fInfoLevelId,
  5610. OUT LPVOID lpFindFileData,
  5611. IN FINDEX_SEARCH_OPS fSearchOp,
  5612. IN LPVOID lpSearchFilter,
  5613. IN DWORD dwAdditionalFlags
  5614. );
  5615. WINBASEAPI
  5616. HANDLE
  5617. WINAPI
  5618. FindFirstFileExW(
  5619. IN LPCWSTR lpFileName,
  5620. IN FINDEX_INFO_LEVELS fInfoLevelId,
  5621. OUT LPVOID lpFindFileData,
  5622. IN FINDEX_SEARCH_OPS fSearchOp,
  5623. IN LPVOID lpSearchFilter,
  5624. IN DWORD dwAdditionalFlags
  5625. );
  5626. #ifdef UNICODE
  5627. #define FindFirstFileEx FindFirstFileExW
  5628. #else
  5629. #define FindFirstFileEx FindFirstFileExA
  5630. #endif // !UNICODE
  5631. #endif /* _WIN32_WINNT >= 0x0400 */
  5632. WINBASEAPI
  5633. HANDLE
  5634. WINAPI
  5635. FindFirstFileA(
  5636. IN LPCSTR lpFileName,
  5637. OUT LPWIN32_FIND_DATAA lpFindFileData
  5638. );
  5639. WINBASEAPI
  5640. HANDLE
  5641. WINAPI
  5642. FindFirstFileW(
  5643. IN LPCWSTR lpFileName,
  5644. OUT LPWIN32_FIND_DATAW lpFindFileData
  5645. );
  5646. #ifdef UNICODE
  5647. #define FindFirstFile FindFirstFileW
  5648. #else
  5649. #define FindFirstFile FindFirstFileA
  5650. #endif // !UNICODE
  5651. WINBASEAPI
  5652. BOOL
  5653. WINAPI
  5654. FindNextFileA(
  5655. IN HANDLE hFindFile,
  5656. OUT LPWIN32_FIND_DATAA lpFindFileData
  5657. );
  5658. WINBASEAPI
  5659. BOOL
  5660. WINAPI
  5661. FindNextFileW(
  5662. IN HANDLE hFindFile,
  5663. OUT LPWIN32_FIND_DATAW lpFindFileData
  5664. );
  5665. #ifdef UNICODE
  5666. #define FindNextFile FindNextFileW
  5667. #else
  5668. #define FindNextFile FindNextFileA
  5669. #endif // !UNICODE
  5670. WINBASEAPI
  5671. DWORD
  5672. WINAPI
  5673. SearchPathA(
  5674. IN LPCSTR lpPath,
  5675. IN LPCSTR lpFileName,
  5676. IN LPCSTR lpExtension,
  5677. IN DWORD nBufferLength,
  5678. OUT LPSTR lpBuffer,
  5679. OUT LPSTR *lpFilePart
  5680. );
  5681. WINBASEAPI
  5682. DWORD
  5683. WINAPI
  5684. SearchPathW(
  5685. IN LPCWSTR lpPath,
  5686. IN LPCWSTR lpFileName,
  5687. IN LPCWSTR lpExtension,
  5688. IN DWORD nBufferLength,
  5689. OUT LPWSTR lpBuffer,
  5690. OUT LPWSTR *lpFilePart
  5691. );
  5692. #ifdef UNICODE
  5693. #define SearchPath SearchPathW
  5694. #else
  5695. #define SearchPath SearchPathA
  5696. #endif // !UNICODE
  5697. WINBASEAPI
  5698. BOOL
  5699. WINAPI
  5700. CopyFileA(
  5701. IN LPCSTR lpExistingFileName,
  5702. IN LPCSTR lpNewFileName,
  5703. IN BOOL bFailIfExists
  5704. );
  5705. WINBASEAPI
  5706. BOOL
  5707. WINAPI
  5708. CopyFileW(
  5709. IN LPCWSTR lpExistingFileName,
  5710. IN LPCWSTR lpNewFileName,
  5711. IN BOOL bFailIfExists
  5712. );
  5713. #ifdef UNICODE
  5714. #define CopyFile CopyFileW
  5715. #else
  5716. #define CopyFile CopyFileA
  5717. #endif // !UNICODE
  5718. #if(_WIN32_WINNT >= 0x0400)
  5719. typedef
  5720. DWORD
  5721. (WINAPI *LPPROGRESS_ROUTINE)(
  5722. LARGE_INTEGER TotalFileSize,
  5723. LARGE_INTEGER TotalBytesTransferred,
  5724. LARGE_INTEGER StreamSize,
  5725. LARGE_INTEGER StreamBytesTransferred,
  5726. DWORD dwStreamNumber,
  5727. DWORD dwCallbackReason,
  5728. HANDLE hSourceFile,
  5729. HANDLE hDestinationFile,
  5730. LPVOID lpData OPTIONAL
  5731. );
  5732. WINBASEAPI
  5733. BOOL
  5734. WINAPI
  5735. CopyFileExA(
  5736. IN LPCSTR lpExistingFileName,
  5737. IN LPCSTR lpNewFileName,
  5738. IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
  5739. IN LPVOID lpData OPTIONAL,
  5740. IN LPBOOL pbCancel OPTIONAL,
  5741. IN DWORD dwCopyFlags
  5742. );
  5743. WINBASEAPI
  5744. BOOL
  5745. WINAPI
  5746. CopyFileExW(
  5747. IN LPCWSTR lpExistingFileName,
  5748. IN LPCWSTR lpNewFileName,
  5749. IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
  5750. IN LPVOID lpData OPTIONAL,
  5751. IN LPBOOL pbCancel OPTIONAL,
  5752. IN DWORD dwCopyFlags
  5753. );
  5754. #ifdef UNICODE
  5755. #define CopyFileEx CopyFileExW
  5756. #else
  5757. #define CopyFileEx CopyFileExA
  5758. #endif // !UNICODE
  5759. #endif /* _WIN32_WINNT >= 0x0400 */
  5760. WINBASEAPI
  5761. BOOL
  5762. WINAPI
  5763. MoveFileA(
  5764. IN LPCSTR lpExistingFileName,
  5765. IN LPCSTR lpNewFileName
  5766. );
  5767. WINBASEAPI
  5768. BOOL
  5769. WINAPI
  5770. MoveFileW(
  5771. IN LPCWSTR lpExistingFileName,
  5772. IN LPCWSTR lpNewFileName
  5773. );
  5774. #ifdef UNICODE
  5775. #define MoveFile MoveFileW
  5776. #else
  5777. #define MoveFile MoveFileA
  5778. #endif // !UNICODE
  5779. WINBASEAPI
  5780. BOOL
  5781. WINAPI
  5782. MoveFileExA(
  5783. IN LPCSTR lpExistingFileName,
  5784. IN LPCSTR lpNewFileName,
  5785. IN DWORD dwFlags
  5786. );
  5787. WINBASEAPI
  5788. BOOL
  5789. WINAPI
  5790. MoveFileExW(
  5791. IN LPCWSTR lpExistingFileName,
  5792. IN LPCWSTR lpNewFileName,
  5793. IN DWORD dwFlags
  5794. );
  5795. #ifdef UNICODE
  5796. #define MoveFileEx MoveFileExW
  5797. #else
  5798. #define MoveFileEx MoveFileExA
  5799. #endif // !UNICODE
  5800. #if (_WIN32_WINNT >= 0x0500)
  5801. WINBASEAPI
  5802. BOOL
  5803. WINAPI
  5804. MoveFileWithProgressA(
  5805. IN LPCSTR lpExistingFileName,
  5806. IN LPCSTR lpNewFileName,
  5807. IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
  5808. IN LPVOID lpData OPTIONAL,
  5809. IN DWORD dwFlags
  5810. );
  5811. WINBASEAPI
  5812. BOOL
  5813. WINAPI
  5814. MoveFileWithProgressW(
  5815. IN LPCWSTR lpExistingFileName,
  5816. IN LPCWSTR lpNewFileName,
  5817. IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
  5818. IN LPVOID lpData OPTIONAL,
  5819. IN DWORD dwFlags
  5820. );
  5821. #ifdef UNICODE
  5822. #define MoveFileWithProgress MoveFileWithProgressW
  5823. #else
  5824. #define MoveFileWithProgress MoveFileWithProgressA
  5825. #endif // !UNICODE
  5826. #endif // (_WIN32_WINNT >= 0x0500)
  5827. #define MOVEFILE_REPLACE_EXISTING 0x00000001
  5828. #define MOVEFILE_COPY_ALLOWED 0x00000002
  5829. #define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004
  5830. #define MOVEFILE_WRITE_THROUGH 0x00000008
  5831. #if (_WIN32_WINNT >= 0x0500)
  5832. #define MOVEFILE_CREATE_HARDLINK 0x00000010
  5833. #define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x00000020
  5834. #endif // (_WIN32_WINNT >= 0x0500)
  5835. #if (_WIN32_WINNT >= 0x0500)
  5836. WINBASEAPI
  5837. BOOL
  5838. WINAPI
  5839. ReplaceFileA(
  5840. LPCSTR lpReplacedFileName,
  5841. LPCSTR lpReplacementFileName,
  5842. LPCSTR lpBackupFileName,
  5843. DWORD dwReplaceFlags,
  5844. LPVOID lpExclude,
  5845. LPVOID lpReserved
  5846. );
  5847. WINBASEAPI
  5848. BOOL
  5849. WINAPI
  5850. ReplaceFileW(
  5851. LPCWSTR lpReplacedFileName,
  5852. LPCWSTR lpReplacementFileName,
  5853. LPCWSTR lpBackupFileName,
  5854. DWORD dwReplaceFlags,
  5855. LPVOID lpExclude,
  5856. LPVOID lpReserved
  5857. );
  5858. #ifdef UNICODE
  5859. #define ReplaceFile ReplaceFileW
  5860. #else
  5861. #define ReplaceFile ReplaceFileA
  5862. #endif // !UNICODE
  5863. #endif // (_WIN32_WINNT >= 0x0500)
  5864. #if (_WIN32_WINNT >= 0x0500)
  5865. //
  5866. // API call to create hard links.
  5867. //
  5868. WINBASEAPI
  5869. BOOL
  5870. WINAPI
  5871. CreateHardLinkA(
  5872. IN LPCSTR lpFileName,
  5873. IN LPCSTR lpExistingFileName,
  5874. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5875. );
  5876. WINBASEAPI
  5877. BOOL
  5878. WINAPI
  5879. CreateHardLinkW(
  5880. IN LPCWSTR lpFileName,
  5881. IN LPCWSTR lpExistingFileName,
  5882. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5883. );
  5884. #ifdef UNICODE
  5885. #define CreateHardLink CreateHardLinkW
  5886. #else
  5887. #define CreateHardLink CreateHardLinkA
  5888. #endif // !UNICODE
  5889. #endif // (_WIN32_WINNT >= 0x0500)
  5890. WINBASEAPI
  5891. HANDLE
  5892. WINAPI
  5893. CreateNamedPipeA(
  5894. IN LPCSTR lpName,
  5895. IN DWORD dwOpenMode,
  5896. IN DWORD dwPipeMode,
  5897. IN DWORD nMaxInstances,
  5898. IN DWORD nOutBufferSize,
  5899. IN DWORD nInBufferSize,
  5900. IN DWORD nDefaultTimeOut,
  5901. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5902. );
  5903. WINBASEAPI
  5904. HANDLE
  5905. WINAPI
  5906. CreateNamedPipeW(
  5907. IN LPCWSTR lpName,
  5908. IN DWORD dwOpenMode,
  5909. IN DWORD dwPipeMode,
  5910. IN DWORD nMaxInstances,
  5911. IN DWORD nOutBufferSize,
  5912. IN DWORD nInBufferSize,
  5913. IN DWORD nDefaultTimeOut,
  5914. IN LPSECURITY_ATTRIBUTES lpSecurityAttributes
  5915. );
  5916. #ifdef UNICODE
  5917. #define CreateNamedPipe CreateNamedPipeW
  5918. #else
  5919. #define CreateNamedPipe CreateNamedPipeA
  5920. #endif // !UNICODE
  5921. WINBASEAPI
  5922. BOOL
  5923. WINAPI
  5924. GetNamedPipeHandleStateA(
  5925. IN HANDLE hNamedPipe,
  5926. OUT LPDWORD lpState,
  5927. OUT LPDWORD lpCurInstances,
  5928. OUT LPDWORD lpMaxCollectionCount,
  5929. OUT LPDWORD lpCollectDataTimeout,
  5930. OUT LPSTR lpUserName,
  5931. IN DWORD nMaxUserNameSize
  5932. );
  5933. WINBASEAPI
  5934. BOOL
  5935. WINAPI
  5936. GetNamedPipeHandleStateW(
  5937. IN HANDLE hNamedPipe,
  5938. OUT LPDWORD lpState,
  5939. OUT LPDWORD lpCurInstances,
  5940. OUT LPDWORD lpMaxCollectionCount,
  5941. OUT LPDWORD lpCollectDataTimeout,
  5942. OUT LPWSTR lpUserName,
  5943. IN DWORD nMaxUserNameSize
  5944. );
  5945. #ifdef UNICODE
  5946. #define GetNamedPipeHandleState GetNamedPipeHandleStateW
  5947. #else
  5948. #define GetNamedPipeHandleState GetNamedPipeHandleStateA
  5949. #endif // !UNICODE
  5950. WINBASEAPI
  5951. BOOL
  5952. WINAPI
  5953. CallNamedPipeA(
  5954. IN LPCSTR lpNamedPipeName,
  5955. IN LPVOID lpInBuffer,
  5956. IN DWORD nInBufferSize,
  5957. OUT LPVOID lpOutBuffer,
  5958. IN DWORD nOutBufferSize,
  5959. OUT LPDWORD lpBytesRead,
  5960. IN DWORD nTimeOut
  5961. );
  5962. WINBASEAPI
  5963. BOOL
  5964. WINAPI
  5965. CallNamedPipeW(
  5966. IN LPCWSTR lpNamedPipeName,
  5967. IN LPVOID lpInBuffer,
  5968. IN DWORD nInBufferSize,
  5969. OUT LPVOID lpOutBuffer,
  5970. IN DWORD nOutBufferSize,
  5971. OUT LPDWORD lpBytesRead,
  5972. IN DWORD nTimeOut
  5973. );
  5974. #ifdef UNICODE
  5975. #define CallNamedPipe CallNamedPipeW
  5976. #else
  5977. #define CallNamedPipe CallNamedPipeA
  5978. #endif // !UNICODE
  5979. WINBASEAPI
  5980. BOOL
  5981. WINAPI
  5982. WaitNamedPipeA(
  5983. IN LPCSTR lpNamedPipeName,
  5984. IN DWORD nTimeOut
  5985. );
  5986. WINBASEAPI
  5987. BOOL
  5988. WINAPI
  5989. WaitNamedPipeW(
  5990. IN LPCWSTR lpNamedPipeName,
  5991. IN DWORD nTimeOut
  5992. );
  5993. #ifdef UNICODE
  5994. #define WaitNamedPipe WaitNamedPipeW
  5995. #else
  5996. #define WaitNamedPipe WaitNamedPipeA
  5997. #endif // !UNICODE
  5998. WINBASEAPI
  5999. BOOL
  6000. WINAPI
  6001. SetVolumeLabelA(
  6002. IN LPCSTR lpRootPathName,
  6003. IN LPCSTR lpVolumeName
  6004. );
  6005. WINBASEAPI
  6006. BOOL
  6007. WINAPI
  6008. SetVolumeLabelW(
  6009. IN LPCWSTR lpRootPathName,
  6010. IN LPCWSTR lpVolumeName
  6011. );
  6012. #ifdef UNICODE
  6013. #define SetVolumeLabel SetVolumeLabelW
  6014. #else
  6015. #define SetVolumeLabel SetVolumeLabelA
  6016. #endif // !UNICODE
  6017. WINBASEAPI
  6018. VOID
  6019. WINAPI
  6020. SetFileApisToOEM( VOID );
  6021. WINBASEAPI
  6022. VOID
  6023. WINAPI
  6024. SetFileApisToANSI( VOID );
  6025. WINBASEAPI
  6026. BOOL
  6027. WINAPI
  6028. AreFileApisANSI( VOID );
  6029. WINBASEAPI
  6030. BOOL
  6031. WINAPI
  6032. GetVolumeInformationA(
  6033. IN LPCSTR lpRootPathName,
  6034. OUT LPSTR lpVolumeNameBuffer,
  6035. IN DWORD nVolumeNameSize,
  6036. OUT LPDWORD lpVolumeSerialNumber,
  6037. OUT LPDWORD lpMaximumComponentLength,
  6038. OUT LPDWORD lpFileSystemFlags,
  6039. OUT LPSTR lpFileSystemNameBuffer,
  6040. IN DWORD nFileSystemNameSize
  6041. );
  6042. WINBASEAPI
  6043. BOOL
  6044. WINAPI
  6045. GetVolumeInformationW(
  6046. IN LPCWSTR lpRootPathName,
  6047. OUT LPWSTR lpVolumeNameBuffer,
  6048. IN DWORD nVolumeNameSize,
  6049. OUT LPDWORD lpVolumeSerialNumber,
  6050. OUT LPDWORD lpMaximumComponentLength,
  6051. OUT LPDWORD lpFileSystemFlags,
  6052. OUT LPWSTR lpFileSystemNameBuffer,
  6053. IN DWORD nFileSystemNameSize
  6054. );
  6055. #ifdef UNICODE
  6056. #define GetVolumeInformation GetVolumeInformationW
  6057. #else
  6058. #define GetVolumeInformation GetVolumeInformationA
  6059. #endif // !UNICODE
  6060. WINBASEAPI
  6061. BOOL
  6062. WINAPI
  6063. CancelIo(
  6064. IN HANDLE hFile
  6065. );
  6066. //
  6067. // Event logging APIs
  6068. //
  6069. WINADVAPI
  6070. BOOL
  6071. WINAPI
  6072. ClearEventLogA (
  6073. IN HANDLE hEventLog,
  6074. IN LPCSTR lpBackupFileName
  6075. );
  6076. WINADVAPI
  6077. BOOL
  6078. WINAPI
  6079. ClearEventLogW (
  6080. IN HANDLE hEventLog,
  6081. IN LPCWSTR lpBackupFileName
  6082. );
  6083. #ifdef UNICODE
  6084. #define ClearEventLog ClearEventLogW
  6085. #else
  6086. #define ClearEventLog ClearEventLogA
  6087. #endif // !UNICODE
  6088. WINADVAPI
  6089. BOOL
  6090. WINAPI
  6091. BackupEventLogA (
  6092. IN HANDLE hEventLog,
  6093. IN LPCSTR lpBackupFileName
  6094. );
  6095. WINADVAPI
  6096. BOOL
  6097. WINAPI
  6098. BackupEventLogW (
  6099. IN HANDLE hEventLog,
  6100. IN LPCWSTR lpBackupFileName
  6101. );
  6102. #ifdef UNICODE
  6103. #define BackupEventLog BackupEventLogW
  6104. #else
  6105. #define BackupEventLog BackupEventLogA
  6106. #endif // !UNICODE
  6107. WINADVAPI
  6108. BOOL
  6109. WINAPI
  6110. CloseEventLog (
  6111. IN OUT HANDLE hEventLog
  6112. );
  6113. WINADVAPI
  6114. BOOL
  6115. WINAPI
  6116. DeregisterEventSource (
  6117. IN OUT HANDLE hEventLog
  6118. );
  6119. WINADVAPI
  6120. BOOL
  6121. WINAPI
  6122. NotifyChangeEventLog(
  6123. IN HANDLE hEventLog,
  6124. IN HANDLE hEvent
  6125. );
  6126. WINADVAPI
  6127. BOOL
  6128. WINAPI
  6129. GetNumberOfEventLogRecords (
  6130. IN HANDLE hEventLog,
  6131. OUT PDWORD NumberOfRecords
  6132. );
  6133. WINADVAPI
  6134. BOOL
  6135. WINAPI
  6136. GetOldestEventLogRecord (
  6137. IN HANDLE hEventLog,
  6138. OUT PDWORD OldestRecord
  6139. );
  6140. WINADVAPI
  6141. HANDLE
  6142. WINAPI
  6143. OpenEventLogA (
  6144. IN LPCSTR lpUNCServerName,
  6145. IN LPCSTR lpSourceName
  6146. );
  6147. WINADVAPI
  6148. HANDLE
  6149. WINAPI
  6150. OpenEventLogW (
  6151. IN LPCWSTR lpUNCServerName,
  6152. IN LPCWSTR lpSourceName
  6153. );
  6154. #ifdef UNICODE
  6155. #define OpenEventLog OpenEventLogW
  6156. #else
  6157. #define OpenEventLog OpenEventLogA
  6158. #endif // !UNICODE
  6159. WINADVAPI
  6160. HANDLE
  6161. WINAPI
  6162. RegisterEventSourceA (
  6163. IN LPCSTR lpUNCServerName,
  6164. IN LPCSTR lpSourceName
  6165. );
  6166. WINADVAPI
  6167. HANDLE
  6168. WINAPI
  6169. RegisterEventSourceW (
  6170. IN LPCWSTR lpUNCServerName,
  6171. IN LPCWSTR lpSourceName
  6172. );
  6173. #ifdef UNICODE
  6174. #define RegisterEventSource RegisterEventSourceW
  6175. #else
  6176. #define RegisterEventSource RegisterEventSourceA
  6177. #endif // !UNICODE
  6178. WINADVAPI
  6179. HANDLE
  6180. WINAPI
  6181. OpenBackupEventLogA (
  6182. IN LPCSTR lpUNCServerName,
  6183. IN LPCSTR lpFileName
  6184. );
  6185. WINADVAPI
  6186. HANDLE
  6187. WINAPI
  6188. OpenBackupEventLogW (
  6189. IN LPCWSTR lpUNCServerName,
  6190. IN LPCWSTR lpFileName
  6191. );
  6192. #ifdef UNICODE
  6193. #define OpenBackupEventLog OpenBackupEventLogW
  6194. #else
  6195. #define OpenBackupEventLog OpenBackupEventLogA
  6196. #endif // !UNICODE
  6197. WINADVAPI
  6198. BOOL
  6199. WINAPI
  6200. ReadEventLogA (
  6201. IN HANDLE hEventLog,
  6202. IN DWORD dwReadFlags,
  6203. IN DWORD dwRecordOffset,
  6204. OUT LPVOID lpBuffer,
  6205. IN DWORD nNumberOfBytesToRead,
  6206. OUT DWORD *pnBytesRead,
  6207. OUT DWORD *pnMinNumberOfBytesNeeded
  6208. );
  6209. WINADVAPI
  6210. BOOL
  6211. WINAPI
  6212. ReadEventLogW (
  6213. IN HANDLE hEventLog,
  6214. IN DWORD dwReadFlags,
  6215. IN DWORD dwRecordOffset,
  6216. OUT LPVOID lpBuffer,
  6217. IN DWORD nNumberOfBytesToRead,
  6218. OUT DWORD *pnBytesRead,
  6219. OUT DWORD *pnMinNumberOfBytesNeeded
  6220. );
  6221. #ifdef UNICODE
  6222. #define ReadEventLog ReadEventLogW
  6223. #else
  6224. #define ReadEventLog ReadEventLogA
  6225. #endif // !UNICODE
  6226. WINADVAPI
  6227. BOOL
  6228. WINAPI
  6229. ReportEventA (
  6230. IN HANDLE hEventLog,
  6231. IN WORD wType,
  6232. IN WORD wCategory,
  6233. IN DWORD dwEventID,
  6234. IN PSID lpUserSid,
  6235. IN WORD wNumStrings,
  6236. IN DWORD dwDataSize,
  6237. IN LPCSTR *lpStrings,
  6238. IN LPVOID lpRawData
  6239. );
  6240. WINADVAPI
  6241. BOOL
  6242. WINAPI
  6243. ReportEventW (
  6244. IN HANDLE hEventLog,
  6245. IN WORD wType,
  6246. IN WORD wCategory,
  6247. IN DWORD dwEventID,
  6248. IN PSID lpUserSid,
  6249. IN WORD wNumStrings,
  6250. IN DWORD dwDataSize,
  6251. IN LPCWSTR *lpStrings,
  6252. IN LPVOID lpRawData
  6253. );
  6254. #ifdef UNICODE
  6255. #define ReportEvent ReportEventW
  6256. #else
  6257. #define ReportEvent ReportEventA
  6258. #endif // !UNICODE
  6259. #define EVENTLOG_FULL_INFO 0
  6260. typedef struct _EVENTLOG_FULL_INFORMATION
  6261. {
  6262. DWORD dwFull;
  6263. }
  6264. EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION;
  6265. WINADVAPI
  6266. BOOL
  6267. WINAPI
  6268. GetEventLogInformation (
  6269. IN HANDLE hEventLog,
  6270. IN DWORD dwInfoLevel,
  6271. OUT LPVOID lpBuffer,
  6272. IN DWORD cbBufSize,
  6273. OUT LPDWORD pcbBytesNeeded
  6274. );
  6275. //
  6276. //
  6277. // Security APIs
  6278. //
  6279. WINADVAPI
  6280. BOOL
  6281. WINAPI
  6282. DuplicateToken(
  6283. IN HANDLE ExistingTokenHandle,
  6284. IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
  6285. OUT PHANDLE DuplicateTokenHandle
  6286. );
  6287. WINADVAPI
  6288. BOOL
  6289. WINAPI
  6290. GetKernelObjectSecurity (
  6291. IN HANDLE Handle,
  6292. IN SECURITY_INFORMATION RequestedInformation,
  6293. OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6294. IN DWORD nLength,
  6295. OUT LPDWORD lpnLengthNeeded
  6296. );
  6297. WINADVAPI
  6298. BOOL
  6299. WINAPI
  6300. ImpersonateNamedPipeClient(
  6301. IN HANDLE hNamedPipe
  6302. );
  6303. WINADVAPI
  6304. BOOL
  6305. WINAPI
  6306. ImpersonateSelf(
  6307. IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
  6308. );
  6309. WINADVAPI
  6310. BOOL
  6311. WINAPI
  6312. RevertToSelf (
  6313. VOID
  6314. );
  6315. WINADVAPI
  6316. BOOL
  6317. APIENTRY
  6318. SetThreadToken (
  6319. IN PHANDLE Thread,
  6320. IN HANDLE Token
  6321. );
  6322. WINADVAPI
  6323. BOOL
  6324. WINAPI
  6325. AccessCheck (
  6326. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6327. IN HANDLE ClientToken,
  6328. IN DWORD DesiredAccess,
  6329. IN PGENERIC_MAPPING GenericMapping,
  6330. OUT PPRIVILEGE_SET PrivilegeSet,
  6331. IN LPDWORD PrivilegeSetLength,
  6332. OUT LPDWORD GrantedAccess,
  6333. OUT LPBOOL AccessStatus
  6334. );
  6335. #if(_WIN32_WINNT >= 0x0500)
  6336. WINADVAPI
  6337. BOOL
  6338. WINAPI
  6339. AccessCheckByType (
  6340. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6341. IN PSID PrincipalSelfSid,
  6342. IN HANDLE ClientToken,
  6343. IN DWORD DesiredAccess,
  6344. OUT POBJECT_TYPE_LIST ObjectTypeList,
  6345. IN DWORD ObjectTypeListLength,
  6346. OUT PGENERIC_MAPPING GenericMapping,
  6347. OUT PPRIVILEGE_SET PrivilegeSet,
  6348. OUT LPDWORD PrivilegeSetLength,
  6349. OUT LPDWORD GrantedAccess,
  6350. OUT LPBOOL AccessStatus
  6351. );
  6352. WINADVAPI
  6353. BOOL
  6354. WINAPI
  6355. AccessCheckByTypeResultList (
  6356. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6357. IN PSID PrincipalSelfSid,
  6358. IN HANDLE ClientToken,
  6359. IN DWORD DesiredAccess,
  6360. OUT POBJECT_TYPE_LIST ObjectTypeList,
  6361. IN DWORD ObjectTypeListLength,
  6362. OUT PGENERIC_MAPPING GenericMapping,
  6363. OUT PPRIVILEGE_SET PrivilegeSet,
  6364. OUT LPDWORD PrivilegeSetLength,
  6365. OUT LPDWORD GrantedAccessList,
  6366. OUT LPDWORD AccessStatusList
  6367. );
  6368. #endif /* _WIN32_WINNT >= 0x0500 */
  6369. WINADVAPI
  6370. BOOL
  6371. WINAPI
  6372. OpenProcessToken (
  6373. IN HANDLE ProcessHandle,
  6374. IN DWORD DesiredAccess,
  6375. OUT PHANDLE TokenHandle
  6376. );
  6377. WINADVAPI
  6378. BOOL
  6379. WINAPI
  6380. OpenThreadToken (
  6381. IN HANDLE ThreadHandle,
  6382. IN DWORD DesiredAccess,
  6383. IN BOOL OpenAsSelf,
  6384. OUT PHANDLE TokenHandle
  6385. );
  6386. WINADVAPI
  6387. BOOL
  6388. WINAPI
  6389. GetTokenInformation (
  6390. IN HANDLE TokenHandle,
  6391. IN TOKEN_INFORMATION_CLASS TokenInformationClass,
  6392. OUT LPVOID TokenInformation,
  6393. IN DWORD TokenInformationLength,
  6394. OUT PDWORD ReturnLength
  6395. );
  6396. WINADVAPI
  6397. BOOL
  6398. WINAPI
  6399. SetTokenInformation (
  6400. IN HANDLE TokenHandle,
  6401. IN TOKEN_INFORMATION_CLASS TokenInformationClass,
  6402. IN LPVOID TokenInformation,
  6403. IN DWORD TokenInformationLength
  6404. );
  6405. WINADVAPI
  6406. BOOL
  6407. WINAPI
  6408. AdjustTokenPrivileges (
  6409. IN HANDLE TokenHandle,
  6410. IN BOOL DisableAllPrivileges,
  6411. IN PTOKEN_PRIVILEGES NewState,
  6412. IN DWORD BufferLength,
  6413. OUT PTOKEN_PRIVILEGES PreviousState,
  6414. OUT PDWORD ReturnLength
  6415. );
  6416. WINADVAPI
  6417. BOOL
  6418. WINAPI
  6419. AdjustTokenGroups (
  6420. IN HANDLE TokenHandle,
  6421. IN BOOL ResetToDefault,
  6422. IN PTOKEN_GROUPS NewState,
  6423. IN DWORD BufferLength,
  6424. OUT PTOKEN_GROUPS PreviousState,
  6425. OUT PDWORD ReturnLength
  6426. );
  6427. WINADVAPI
  6428. BOOL
  6429. WINAPI
  6430. PrivilegeCheck (
  6431. IN HANDLE ClientToken,
  6432. IN PPRIVILEGE_SET RequiredPrivileges,
  6433. OUT LPBOOL pfResult
  6434. );
  6435. WINADVAPI
  6436. BOOL
  6437. WINAPI
  6438. AccessCheckAndAuditAlarmA (
  6439. IN LPCSTR SubsystemName,
  6440. IN LPVOID HandleId,
  6441. IN LPSTR ObjectTypeName,
  6442. IN LPSTR ObjectName,
  6443. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6444. IN DWORD DesiredAccess,
  6445. IN PGENERIC_MAPPING GenericMapping,
  6446. IN BOOL ObjectCreation,
  6447. OUT LPDWORD GrantedAccess,
  6448. OUT LPBOOL AccessStatus,
  6449. OUT LPBOOL pfGenerateOnClose
  6450. );
  6451. WINADVAPI
  6452. BOOL
  6453. WINAPI
  6454. AccessCheckAndAuditAlarmW (
  6455. IN LPCWSTR SubsystemName,
  6456. IN LPVOID HandleId,
  6457. IN LPWSTR ObjectTypeName,
  6458. IN LPWSTR ObjectName,
  6459. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6460. IN DWORD DesiredAccess,
  6461. IN PGENERIC_MAPPING GenericMapping,
  6462. IN BOOL ObjectCreation,
  6463. OUT LPDWORD GrantedAccess,
  6464. OUT LPBOOL AccessStatus,
  6465. OUT LPBOOL pfGenerateOnClose
  6466. );
  6467. #ifdef UNICODE
  6468. #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
  6469. #else
  6470. #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA
  6471. #endif // !UNICODE
  6472. #if(_WIN32_WINNT >= 0x0500)
  6473. WINADVAPI
  6474. BOOL
  6475. WINAPI
  6476. AccessCheckByTypeAndAuditAlarmA (
  6477. IN LPCSTR SubsystemName,
  6478. IN LPVOID HandleId,
  6479. IN LPCSTR ObjectTypeName,
  6480. IN LPCSTR ObjectName,
  6481. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6482. IN PSID PrincipalSelfSid,
  6483. IN DWORD DesiredAccess,
  6484. IN AUDIT_EVENT_TYPE AuditType,
  6485. IN DWORD Flags,
  6486. IN POBJECT_TYPE_LIST ObjectTypeList,
  6487. IN DWORD ObjectTypeListLength,
  6488. IN PGENERIC_MAPPING GenericMapping,
  6489. IN BOOL ObjectCreation,
  6490. OUT LPDWORD GrantedAccess,
  6491. OUT LPBOOL AccessStatus,
  6492. OUT LPBOOL pfGenerateOnClose
  6493. );
  6494. WINADVAPI
  6495. BOOL
  6496. WINAPI
  6497. AccessCheckByTypeAndAuditAlarmW (
  6498. IN LPCWSTR SubsystemName,
  6499. IN LPVOID HandleId,
  6500. IN LPCWSTR ObjectTypeName,
  6501. IN LPCWSTR ObjectName,
  6502. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6503. IN PSID PrincipalSelfSid,
  6504. IN DWORD DesiredAccess,
  6505. IN AUDIT_EVENT_TYPE AuditType,
  6506. IN DWORD Flags,
  6507. IN POBJECT_TYPE_LIST ObjectTypeList,
  6508. IN DWORD ObjectTypeListLength,
  6509. IN PGENERIC_MAPPING GenericMapping,
  6510. IN BOOL ObjectCreation,
  6511. OUT LPDWORD GrantedAccess,
  6512. OUT LPBOOL AccessStatus,
  6513. OUT LPBOOL pfGenerateOnClose
  6514. );
  6515. #ifdef UNICODE
  6516. #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmW
  6517. #else
  6518. #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmA
  6519. #endif // !UNICODE
  6520. WINADVAPI
  6521. BOOL
  6522. WINAPI
  6523. AccessCheckByTypeResultListAndAuditAlarmA (
  6524. IN LPCSTR SubsystemName,
  6525. IN LPVOID HandleId,
  6526. IN LPCSTR ObjectTypeName,
  6527. IN LPCSTR ObjectName,
  6528. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6529. IN PSID PrincipalSelfSid,
  6530. IN DWORD DesiredAccess,
  6531. IN AUDIT_EVENT_TYPE AuditType,
  6532. IN DWORD Flags,
  6533. IN POBJECT_TYPE_LIST ObjectTypeList,
  6534. IN DWORD ObjectTypeListLength,
  6535. IN PGENERIC_MAPPING GenericMapping,
  6536. IN BOOL ObjectCreation,
  6537. OUT LPDWORD GrantedAccess,
  6538. OUT LPDWORD AccessStatusList,
  6539. OUT LPBOOL pfGenerateOnClose
  6540. );
  6541. WINADVAPI
  6542. BOOL
  6543. WINAPI
  6544. AccessCheckByTypeResultListAndAuditAlarmW (
  6545. IN LPCWSTR SubsystemName,
  6546. IN LPVOID HandleId,
  6547. IN LPCWSTR ObjectTypeName,
  6548. IN LPCWSTR ObjectName,
  6549. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6550. IN PSID PrincipalSelfSid,
  6551. IN DWORD DesiredAccess,
  6552. IN AUDIT_EVENT_TYPE AuditType,
  6553. IN DWORD Flags,
  6554. IN POBJECT_TYPE_LIST ObjectTypeList,
  6555. IN DWORD ObjectTypeListLength,
  6556. IN PGENERIC_MAPPING GenericMapping,
  6557. IN BOOL ObjectCreation,
  6558. OUT LPDWORD GrantedAccess,
  6559. OUT LPDWORD AccessStatusList,
  6560. OUT LPBOOL pfGenerateOnClose
  6561. );
  6562. #ifdef UNICODE
  6563. #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmW
  6564. #else
  6565. #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmA
  6566. #endif // !UNICODE
  6567. WINADVAPI
  6568. BOOL
  6569. WINAPI
  6570. AccessCheckByTypeResultListAndAuditAlarmByHandleA (
  6571. IN LPCSTR SubsystemName,
  6572. IN LPVOID HandleId,
  6573. IN HANDLE ClientToken,
  6574. IN LPCSTR ObjectTypeName,
  6575. IN LPCSTR ObjectName,
  6576. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6577. IN PSID PrincipalSelfSid,
  6578. IN DWORD DesiredAccess,
  6579. IN AUDIT_EVENT_TYPE AuditType,
  6580. IN DWORD Flags,
  6581. IN POBJECT_TYPE_LIST ObjectTypeList,
  6582. IN DWORD ObjectTypeListLength,
  6583. IN PGENERIC_MAPPING GenericMapping,
  6584. IN BOOL ObjectCreation,
  6585. OUT LPDWORD GrantedAccess,
  6586. OUT LPDWORD AccessStatusList,
  6587. OUT LPBOOL pfGenerateOnClose
  6588. );
  6589. WINADVAPI
  6590. BOOL
  6591. WINAPI
  6592. AccessCheckByTypeResultListAndAuditAlarmByHandleW (
  6593. IN LPCWSTR SubsystemName,
  6594. IN LPVOID HandleId,
  6595. IN HANDLE ClientToken,
  6596. IN LPCWSTR ObjectTypeName,
  6597. IN LPCWSTR ObjectName,
  6598. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  6599. IN PSID PrincipalSelfSid,
  6600. IN DWORD DesiredAccess,
  6601. IN AUDIT_EVENT_TYPE AuditType,
  6602. IN DWORD Flags,
  6603. IN POBJECT_TYPE_LIST ObjectTypeList,
  6604. IN DWORD ObjectTypeListLength,
  6605. IN PGENERIC_MAPPING GenericMapping,
  6606. IN BOOL ObjectCreation,
  6607. OUT LPDWORD GrantedAccess,
  6608. OUT LPDWORD AccessStatusList,
  6609. OUT LPBOOL pfGenerateOnClose
  6610. );
  6611. #ifdef UNICODE
  6612. #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleW
  6613. #else
  6614. #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleA
  6615. #endif // !UNICODE
  6616. #endif //(_WIN32_WINNT >= 0x0500)
  6617. WINADVAPI
  6618. BOOL
  6619. WINAPI
  6620. ObjectOpenAuditAlarmA (
  6621. IN LPCSTR SubsystemName,
  6622. IN LPVOID HandleId,
  6623. IN LPSTR ObjectTypeName,
  6624. IN LPSTR ObjectName,
  6625. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6626. IN HANDLE ClientToken,
  6627. IN DWORD DesiredAccess,
  6628. IN DWORD GrantedAccess,
  6629. IN PPRIVILEGE_SET Privileges,
  6630. IN BOOL ObjectCreation,
  6631. IN BOOL AccessGranted,
  6632. OUT LPBOOL GenerateOnClose
  6633. );
  6634. WINADVAPI
  6635. BOOL
  6636. WINAPI
  6637. ObjectOpenAuditAlarmW (
  6638. IN LPCWSTR SubsystemName,
  6639. IN LPVOID HandleId,
  6640. IN LPWSTR ObjectTypeName,
  6641. IN LPWSTR ObjectName,
  6642. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  6643. IN HANDLE ClientToken,
  6644. IN DWORD DesiredAccess,
  6645. IN DWORD GrantedAccess,
  6646. IN PPRIVILEGE_SET Privileges,
  6647. IN BOOL ObjectCreation,
  6648. IN BOOL AccessGranted,
  6649. OUT LPBOOL GenerateOnClose
  6650. );
  6651. #ifdef UNICODE
  6652. #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
  6653. #else
  6654. #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
  6655. #endif // !UNICODE
  6656. WINADVAPI
  6657. BOOL
  6658. WINAPI
  6659. ObjectPrivilegeAuditAlarmA (
  6660. IN LPCSTR SubsystemName,
  6661. IN LPVOID HandleId,
  6662. IN HANDLE ClientToken,
  6663. IN DWORD DesiredAccess,
  6664. IN PPRIVILEGE_SET Privileges,
  6665. IN BOOL AccessGranted
  6666. );
  6667. WINADVAPI
  6668. BOOL
  6669. WINAPI
  6670. ObjectPrivilegeAuditAlarmW (
  6671. IN LPCWSTR SubsystemName,
  6672. IN LPVOID HandleId,
  6673. IN HANDLE ClientToken,
  6674. IN DWORD DesiredAccess,
  6675. IN PPRIVILEGE_SET Privileges,
  6676. IN BOOL AccessGranted
  6677. );
  6678. #ifdef UNICODE
  6679. #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
  6680. #else
  6681. #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
  6682. #endif // !UNICODE
  6683. WINADVAPI
  6684. BOOL
  6685. WINAPI
  6686. ObjectCloseAuditAlarmA (
  6687. IN LPCSTR SubsystemName,
  6688. IN LPVOID HandleId,
  6689. IN BOOL GenerateOnClose
  6690. );
  6691. WINADVAPI
  6692. BOOL
  6693. WINAPI
  6694. ObjectCloseAuditAlarmW (
  6695. IN LPCWSTR SubsystemName,
  6696. IN LPVOID HandleId,
  6697. IN BOOL GenerateOnClose
  6698. );
  6699. #ifdef UNICODE
  6700. #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
  6701. #else
  6702. #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
  6703. #endif // !UNICODE
  6704. WINADVAPI
  6705. BOOL
  6706. WINAPI
  6707. ObjectDeleteAuditAlarmA (
  6708. IN LPCSTR SubsystemName,
  6709. IN LPVOID HandleId,
  6710. IN BOOL GenerateOnClose
  6711. );
  6712. WINADVAPI
  6713. BOOL
  6714. WINAPI
  6715. ObjectDeleteAuditAlarmW (
  6716. IN LPCWSTR SubsystemName,
  6717. IN LPVOID HandleId,
  6718. IN BOOL GenerateOnClose
  6719. );
  6720. #ifdef UNICODE
  6721. #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
  6722. #else
  6723. #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
  6724. #endif // !UNICODE
  6725. WINADVAPI
  6726. BOOL
  6727. WINAPI
  6728. PrivilegedServiceAuditAlarmA (
  6729. IN LPCSTR SubsystemName,
  6730. IN LPCSTR ServiceName,
  6731. IN HANDLE ClientToken,
  6732. IN PPRIVILEGE_SET Privileges,
  6733. IN BOOL AccessGranted
  6734. );
  6735. WINADVAPI
  6736. BOOL
  6737. WINAPI
  6738. PrivilegedServiceAuditAlarmW (
  6739. IN LPCWSTR SubsystemName,
  6740. IN LPCWSTR ServiceName,
  6741. IN HANDLE ClientToken,
  6742. IN PPRIVILEGE_SET Privileges,
  6743. IN BOOL AccessGranted
  6744. );
  6745. #ifdef UNICODE
  6746. #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
  6747. #else
  6748. #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
  6749. #endif // !UNICODE
  6750. #if(_WIN32_WINNT >= 0x0501)
  6751. typedef enum {
  6752. WinNullSid = 0,
  6753. WinWorldSid = 1,
  6754. WinLocalSid = 2,
  6755. WinCreatorOwnerSid = 3,
  6756. WinCreatorGroupSid = 4,
  6757. WinCreatorOwnerServerSid = 5,
  6758. WinCreatorGroupServerSid = 6,
  6759. WinNtAuthoritySid = 7,
  6760. WinDialupSid = 8,
  6761. WinNetworkSid = 9,
  6762. WinBatchSid = 10,
  6763. WinInteractiveSid = 11,
  6764. WinServiceSid = 12,
  6765. WinAnonymousSid = 13,
  6766. WinProxySid = 14,
  6767. WinEnterpriseControllersSid = 15,
  6768. WinSelfSid = 16,
  6769. WinAuthenticatedUserSid = 17,
  6770. WinRestrictedCodeSid = 18,
  6771. WinTerminalServerSid = 19,
  6772. WinRemoteLogonIdSid = 20,
  6773. WinLogonIdsSid = 21,
  6774. WinLocalSystemSid = 22,
  6775. WinLocalServiceSid = 23,
  6776. WinNetworkServiceSid = 24,
  6777. WinBuiltinDomainSid = 25,
  6778. WinBuiltinAdministratorsSid = 26,
  6779. WinBuiltinUsersSid = 27,
  6780. WinBuiltinGuestsSid = 28,
  6781. WinBuiltinPowerUsersSid = 29,
  6782. WinBuiltinAccountOperatorsSid = 30,
  6783. WinBuiltinSystemOperatorsSid = 31,
  6784. WinBuiltinPrintOperatorsSid = 32,
  6785. WinBuiltinBackupOperatorsSid = 33,
  6786. WinBuiltinReplicatorSid = 34,
  6787. WinBuiltinPreWindows2000CompatibleAccessSid = 35,
  6788. WinBuiltinRemoteDesktopUsersSid = 36,
  6789. WinBuiltinNetworkConfigurationOperatorsSid = 37,
  6790. WinAccountAdministratorSid = 38,
  6791. WinAccountGuestSid = 39,
  6792. WinAccountKrbtgtSid = 40,
  6793. WinAccountDomainAdminsSid = 41,
  6794. WinAccountDomainUsersSid = 42,
  6795. WinAccountDomainGuestsSid = 43,
  6796. WinAccountComputersSid = 44,
  6797. WinAccountControllersSid = 45,
  6798. WinAccountCertAdminsSid = 46,
  6799. WinAccountSchemaAdminsSid = 47,
  6800. WinAccountEnterpriseAdminsSid = 48,
  6801. WinAccountPolicyAdminsSid = 49,
  6802. WinAccountRasAndIasServersSid = 50,
  6803. } WELL_KNOWN_SID_TYPE;
  6804. WINADVAPI
  6805. BOOL
  6806. WINAPI
  6807. IsWellKnownSid (
  6808. IN PSID pSid,
  6809. IN WELL_KNOWN_SID_TYPE WellKnownSidType
  6810. );
  6811. WINADVAPI
  6812. BOOL
  6813. WINAPI
  6814. CreateWellKnownSid(
  6815. IN WELL_KNOWN_SID_TYPE WellKnownSidType,
  6816. IN PSID DomainSid OPTIONAL,
  6817. OUT PSID pSid,
  6818. IN OUT DWORD *cbSid
  6819. );
  6820. WINADVAPI
  6821. BOOL
  6822. WINAPI
  6823. EqualDomainSid(
  6824. IN PSID pSid1,
  6825. IN PSID pSid2,
  6826. OUT BOOL *pfEqual
  6827. );
  6828. WINADVAPI
  6829. BOOL
  6830. WINAPI
  6831. GetWindowsAccountDomainSid(
  6832. IN PSID pSid,
  6833. OUT PSID ppDomainSid OPTIONAL,
  6834. IN OUT DWORD *cbSid
  6835. );
  6836. #endif //(_WIN32_WINNT >= 0x0501)
  6837. WINADVAPI
  6838. BOOL
  6839. WINAPI
  6840. IsValidSid (
  6841. IN PSID pSid
  6842. );
  6843. WINADVAPI
  6844. BOOL
  6845. WINAPI
  6846. EqualSid (
  6847. IN PSID pSid1,
  6848. IN PSID pSid2
  6849. );
  6850. WINADVAPI
  6851. BOOL
  6852. WINAPI
  6853. EqualPrefixSid (
  6854. PSID pSid1,
  6855. PSID pSid2
  6856. );
  6857. WINADVAPI
  6858. DWORD
  6859. WINAPI
  6860. GetSidLengthRequired (
  6861. IN UCHAR nSubAuthorityCount
  6862. );
  6863. WINADVAPI
  6864. BOOL
  6865. WINAPI
  6866. AllocateAndInitializeSid (
  6867. IN PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
  6868. IN BYTE nSubAuthorityCount,
  6869. IN DWORD nSubAuthority0,
  6870. IN DWORD nSubAuthority1,
  6871. IN DWORD nSubAuthority2,
  6872. IN DWORD nSubAuthority3,
  6873. IN DWORD nSubAuthority4,
  6874. IN DWORD nSubAuthority5,
  6875. IN DWORD nSubAuthority6,
  6876. IN DWORD nSubAuthority7,
  6877. OUT PSID *pSid
  6878. );
  6879. WINADVAPI
  6880. PVOID
  6881. WINAPI
  6882. FreeSid(
  6883. IN PSID pSid
  6884. );
  6885. WINADVAPI
  6886. BOOL
  6887. WINAPI
  6888. InitializeSid (
  6889. OUT PSID Sid,
  6890. IN PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
  6891. IN BYTE nSubAuthorityCount
  6892. );
  6893. WINADVAPI
  6894. PSID_IDENTIFIER_AUTHORITY
  6895. WINAPI
  6896. GetSidIdentifierAuthority (
  6897. IN PSID pSid
  6898. );
  6899. WINADVAPI
  6900. PDWORD
  6901. WINAPI
  6902. GetSidSubAuthority (
  6903. IN PSID pSid,
  6904. IN DWORD nSubAuthority
  6905. );
  6906. WINADVAPI
  6907. PUCHAR
  6908. WINAPI
  6909. GetSidSubAuthorityCount (
  6910. IN PSID pSid
  6911. );
  6912. WINADVAPI
  6913. DWORD
  6914. WINAPI
  6915. GetLengthSid (
  6916. IN PSID pSid
  6917. );
  6918. WINADVAPI
  6919. BOOL
  6920. WINAPI
  6921. CopySid (
  6922. IN DWORD nDestinationSidLength,
  6923. OUT PSID pDestinationSid,
  6924. IN PSID pSourceSid
  6925. );
  6926. WINADVAPI
  6927. BOOL
  6928. WINAPI
  6929. AreAllAccessesGranted (
  6930. IN DWORD GrantedAccess,
  6931. IN DWORD DesiredAccess
  6932. );
  6933. WINADVAPI
  6934. BOOL
  6935. WINAPI
  6936. AreAnyAccessesGranted (
  6937. IN DWORD GrantedAccess,
  6938. IN DWORD DesiredAccess
  6939. );
  6940. WINADVAPI
  6941. VOID
  6942. WINAPI
  6943. MapGenericMask (
  6944. OUT PDWORD AccessMask,
  6945. IN PGENERIC_MAPPING GenericMapping
  6946. );
  6947. WINADVAPI
  6948. BOOL
  6949. WINAPI
  6950. IsValidAcl (
  6951. IN PACL pAcl
  6952. );
  6953. WINADVAPI
  6954. BOOL
  6955. WINAPI
  6956. InitializeAcl (
  6957. OUT PACL pAcl,
  6958. IN DWORD nAclLength,
  6959. IN DWORD dwAclRevision
  6960. );
  6961. WINADVAPI
  6962. BOOL
  6963. WINAPI
  6964. GetAclInformation (
  6965. IN PACL pAcl,
  6966. OUT LPVOID pAclInformation,
  6967. IN DWORD nAclInformationLength,
  6968. IN ACL_INFORMATION_CLASS dwAclInformationClass
  6969. );
  6970. WINADVAPI
  6971. BOOL
  6972. WINAPI
  6973. SetAclInformation (
  6974. IN PACL pAcl,
  6975. IN LPVOID pAclInformation,
  6976. IN DWORD nAclInformationLength,
  6977. IN ACL_INFORMATION_CLASS dwAclInformationClass
  6978. );
  6979. WINADVAPI
  6980. BOOL
  6981. WINAPI
  6982. AddAce (
  6983. IN OUT PACL pAcl,
  6984. IN DWORD dwAceRevision,
  6985. IN DWORD dwStartingAceIndex,
  6986. IN LPVOID pAceList,
  6987. IN DWORD nAceListLength
  6988. );
  6989. WINADVAPI
  6990. BOOL
  6991. WINAPI
  6992. DeleteAce (
  6993. IN OUT PACL pAcl,
  6994. IN DWORD dwAceIndex
  6995. );
  6996. WINADVAPI
  6997. BOOL
  6998. WINAPI
  6999. GetAce (
  7000. IN PACL pAcl,
  7001. IN DWORD dwAceIndex,
  7002. OUT LPVOID *pAce
  7003. );
  7004. WINADVAPI
  7005. BOOL
  7006. WINAPI
  7007. AddAccessAllowedAce (
  7008. IN OUT PACL pAcl,
  7009. IN DWORD dwAceRevision,
  7010. IN DWORD AccessMask,
  7011. IN PSID pSid
  7012. );
  7013. #if(_WIN32_WINNT >= 0x0500)
  7014. WINADVAPI
  7015. BOOL
  7016. WINAPI
  7017. AddAccessAllowedAceEx (
  7018. IN OUT PACL pAcl,
  7019. IN DWORD dwAceRevision,
  7020. IN DWORD AceFlags,
  7021. IN DWORD AccessMask,
  7022. IN PSID pSid
  7023. );
  7024. #endif /* _WIN32_WINNT >= 0x0500 */
  7025. WINADVAPI
  7026. BOOL
  7027. WINAPI
  7028. AddAccessDeniedAce (
  7029. IN OUT PACL pAcl,
  7030. IN DWORD dwAceRevision,
  7031. IN DWORD AccessMask,
  7032. IN PSID pSid
  7033. );
  7034. #if(_WIN32_WINNT >= 0x0500)
  7035. WINADVAPI
  7036. BOOL
  7037. WINAPI
  7038. AddAccessDeniedAceEx (
  7039. IN OUT PACL pAcl,
  7040. IN DWORD dwAceRevision,
  7041. IN DWORD AceFlags,
  7042. IN DWORD AccessMask,
  7043. IN PSID pSid
  7044. );
  7045. #endif /* _WIN32_WINNT >= 0x0500 */
  7046. WINADVAPI
  7047. BOOL
  7048. WINAPI
  7049. AddAuditAccessAce(
  7050. IN OUT PACL pAcl,
  7051. IN DWORD dwAceRevision,
  7052. IN DWORD dwAccessMask,
  7053. IN PSID pSid,
  7054. IN BOOL bAuditSuccess,
  7055. IN BOOL bAuditFailure
  7056. );
  7057. #if(_WIN32_WINNT >= 0x0500)
  7058. WINADVAPI
  7059. BOOL
  7060. WINAPI
  7061. AddAuditAccessAceEx(
  7062. IN OUT PACL pAcl,
  7063. IN DWORD dwAceRevision,
  7064. IN DWORD AceFlags,
  7065. IN DWORD dwAccessMask,
  7066. IN PSID pSid,
  7067. IN BOOL bAuditSuccess,
  7068. IN BOOL bAuditFailure
  7069. );
  7070. WINADVAPI
  7071. BOOL
  7072. WINAPI
  7073. AddAccessAllowedObjectAce (
  7074. IN OUT PACL pAcl,
  7075. IN DWORD dwAceRevision,
  7076. IN DWORD AceFlags,
  7077. IN DWORD AccessMask,
  7078. IN GUID *ObjectTypeGuid,
  7079. IN GUID *InheritedObjectTypeGuid,
  7080. IN PSID pSid
  7081. );
  7082. WINADVAPI
  7083. BOOL
  7084. WINAPI
  7085. AddAccessDeniedObjectAce (
  7086. IN OUT PACL pAcl,
  7087. IN DWORD dwAceRevision,
  7088. IN DWORD AceFlags,
  7089. IN DWORD AccessMask,
  7090. IN GUID *ObjectTypeGuid,
  7091. IN GUID *InheritedObjectTypeGuid,
  7092. IN PSID pSid
  7093. );
  7094. WINADVAPI
  7095. BOOL
  7096. WINAPI
  7097. AddAuditAccessObjectAce (
  7098. IN OUT PACL pAcl,
  7099. IN DWORD dwAceRevision,
  7100. IN DWORD AceFlags,
  7101. IN DWORD AccessMask,
  7102. IN GUID *ObjectTypeGuid,
  7103. IN GUID *InheritedObjectTypeGuid,
  7104. IN PSID pSid,
  7105. IN BOOL bAuditSuccess,
  7106. IN BOOL bAuditFailure
  7107. );
  7108. #endif /* _WIN32_WINNT >= 0x0500 */
  7109. WINADVAPI
  7110. BOOL
  7111. WINAPI
  7112. FindFirstFreeAce (
  7113. IN PACL pAcl,
  7114. OUT LPVOID *pAce
  7115. );
  7116. WINADVAPI
  7117. BOOL
  7118. WINAPI
  7119. InitializeSecurityDescriptor (
  7120. OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7121. IN DWORD dwRevision
  7122. );
  7123. WINADVAPI
  7124. BOOL
  7125. WINAPI
  7126. IsValidSecurityDescriptor (
  7127. IN PSECURITY_DESCRIPTOR pSecurityDescriptor
  7128. );
  7129. WINADVAPI
  7130. DWORD
  7131. WINAPI
  7132. GetSecurityDescriptorLength (
  7133. IN PSECURITY_DESCRIPTOR pSecurityDescriptor
  7134. );
  7135. WINADVAPI
  7136. BOOL
  7137. WINAPI
  7138. GetSecurityDescriptorControl (
  7139. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7140. OUT PSECURITY_DESCRIPTOR_CONTROL pControl,
  7141. OUT LPDWORD lpdwRevision
  7142. );
  7143. #if(_WIN32_WINNT >= 0x0500)
  7144. WINADVAPI
  7145. BOOL
  7146. WINAPI
  7147. SetSecurityDescriptorControl (
  7148. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7149. IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
  7150. IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet
  7151. );
  7152. #endif /* _WIN32_WINNT >= 0x0500 */
  7153. WINADVAPI
  7154. BOOL
  7155. WINAPI
  7156. SetSecurityDescriptorDacl (
  7157. IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7158. IN BOOL bDaclPresent,
  7159. IN PACL pDacl,
  7160. IN BOOL bDaclDefaulted
  7161. );
  7162. WINADVAPI
  7163. BOOL
  7164. WINAPI
  7165. GetSecurityDescriptorDacl (
  7166. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7167. OUT LPBOOL lpbDaclPresent,
  7168. OUT PACL *pDacl,
  7169. OUT LPBOOL lpbDaclDefaulted
  7170. );
  7171. WINADVAPI
  7172. BOOL
  7173. WINAPI
  7174. SetSecurityDescriptorSacl (
  7175. IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7176. IN BOOL bSaclPresent,
  7177. IN PACL pSacl,
  7178. IN BOOL bSaclDefaulted
  7179. );
  7180. WINADVAPI
  7181. BOOL
  7182. WINAPI
  7183. GetSecurityDescriptorSacl (
  7184. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7185. OUT LPBOOL lpbSaclPresent,
  7186. OUT PACL *pSacl,
  7187. OUT LPBOOL lpbSaclDefaulted
  7188. );
  7189. WINADVAPI
  7190. BOOL
  7191. WINAPI
  7192. SetSecurityDescriptorOwner (
  7193. IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7194. IN PSID pOwner,
  7195. IN BOOL bOwnerDefaulted
  7196. );
  7197. WINADVAPI
  7198. BOOL
  7199. WINAPI
  7200. GetSecurityDescriptorOwner (
  7201. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7202. OUT PSID *pOwner,
  7203. OUT LPBOOL lpbOwnerDefaulted
  7204. );
  7205. WINADVAPI
  7206. BOOL
  7207. WINAPI
  7208. SetSecurityDescriptorGroup (
  7209. IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7210. IN PSID pGroup,
  7211. IN BOOL bGroupDefaulted
  7212. );
  7213. WINADVAPI
  7214. BOOL
  7215. WINAPI
  7216. GetSecurityDescriptorGroup (
  7217. IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7218. OUT PSID *pGroup,
  7219. OUT LPBOOL lpbGroupDefaulted
  7220. );
  7221. WINADVAPI
  7222. DWORD
  7223. WINAPI
  7224. SetSecurityDescriptorRMControl(
  7225. IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
  7226. IN PUCHAR RMControl OPTIONAL
  7227. );
  7228. WINADVAPI
  7229. DWORD
  7230. WINAPI
  7231. GetSecurityDescriptorRMControl(
  7232. IN PSECURITY_DESCRIPTOR SecurityDescriptor,
  7233. OUT PUCHAR RMControl
  7234. );
  7235. WINADVAPI
  7236. BOOL
  7237. WINAPI
  7238. CreatePrivateObjectSecurity (
  7239. IN PSECURITY_DESCRIPTOR ParentDescriptor,
  7240. IN PSECURITY_DESCRIPTOR CreatorDescriptor,
  7241. OUT PSECURITY_DESCRIPTOR * NewDescriptor,
  7242. IN BOOL IsDirectoryObject,
  7243. IN HANDLE Token,
  7244. IN PGENERIC_MAPPING GenericMapping
  7245. );
  7246. #if(_WIN32_WINNT >= 0x0500)
  7247. WINADVAPI
  7248. BOOL
  7249. WINAPI
  7250. ConvertToAutoInheritPrivateObjectSecurity(
  7251. IN PSECURITY_DESCRIPTOR ParentDescriptor,
  7252. IN PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,
  7253. OUT PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
  7254. IN GUID *ObjectType,
  7255. IN BOOLEAN IsDirectoryObject,
  7256. IN PGENERIC_MAPPING GenericMapping
  7257. );
  7258. WINADVAPI
  7259. BOOL
  7260. WINAPI
  7261. CreatePrivateObjectSecurityEx (
  7262. IN PSECURITY_DESCRIPTOR ParentDescriptor,
  7263. IN PSECURITY_DESCRIPTOR CreatorDescriptor,
  7264. OUT PSECURITY_DESCRIPTOR * NewDescriptor,
  7265. IN GUID *ObjectType OPTIONAL,
  7266. IN BOOL IsContainerObject,
  7267. IN ULONG AutoInheritFlags,
  7268. IN HANDLE Token,
  7269. IN PGENERIC_MAPPING GenericMapping
  7270. );
  7271. WINADVAPI
  7272. BOOL
  7273. WINAPI
  7274. CreatePrivateObjectSecurityWithMultipleInheritance (
  7275. IN PSECURITY_DESCRIPTOR ParentDescriptor,
  7276. IN PSECURITY_DESCRIPTOR CreatorDescriptor,
  7277. OUT PSECURITY_DESCRIPTOR * NewDescriptor,
  7278. IN GUID **ObjectTypes OPTIONAL,
  7279. IN ULONG GuidCount,
  7280. IN BOOL IsContainerObject,
  7281. IN ULONG AutoInheritFlags,
  7282. IN HANDLE Token,
  7283. IN PGENERIC_MAPPING GenericMapping
  7284. );
  7285. #endif /* _WIN32_WINNT >= 0x0500 */
  7286. WINADVAPI
  7287. BOOL
  7288. WINAPI
  7289. SetPrivateObjectSecurity (
  7290. IN SECURITY_INFORMATION SecurityInformation,
  7291. IN PSECURITY_DESCRIPTOR ModificationDescriptor,
  7292. OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
  7293. IN PGENERIC_MAPPING GenericMapping,
  7294. IN HANDLE Token
  7295. );
  7296. #if(_WIN32_WINNT >= 0x0500)
  7297. WINADVAPI
  7298. BOOL
  7299. WINAPI
  7300. SetPrivateObjectSecurityEx (
  7301. IN SECURITY_INFORMATION SecurityInformation,
  7302. IN PSECURITY_DESCRIPTOR ModificationDescriptor,
  7303. OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
  7304. IN ULONG AutoInheritFlags,
  7305. IN PGENERIC_MAPPING GenericMapping,
  7306. IN HANDLE Token OPTIONAL
  7307. );
  7308. #endif /* _WIN32_WINNT >= 0x0500 */
  7309. WINADVAPI
  7310. BOOL
  7311. WINAPI
  7312. GetPrivateObjectSecurity (
  7313. IN PSECURITY_DESCRIPTOR ObjectDescriptor,
  7314. IN SECURITY_INFORMATION SecurityInformation,
  7315. OUT PSECURITY_DESCRIPTOR ResultantDescriptor,
  7316. IN DWORD DescriptorLength,
  7317. OUT PDWORD ReturnLength
  7318. );
  7319. WINADVAPI
  7320. BOOL
  7321. WINAPI
  7322. DestroyPrivateObjectSecurity (
  7323. IN OUT PSECURITY_DESCRIPTOR * ObjectDescriptor
  7324. );
  7325. WINADVAPI
  7326. BOOL
  7327. WINAPI
  7328. MakeSelfRelativeSD (
  7329. IN PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  7330. OUT PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  7331. OUT LPDWORD lpdwBufferLength
  7332. );
  7333. WINADVAPI
  7334. BOOL
  7335. WINAPI
  7336. MakeAbsoluteSD (
  7337. IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  7338. OUT PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  7339. OUT LPDWORD lpdwAbsoluteSecurityDescriptorSize,
  7340. OUT PACL pDacl,
  7341. OUT LPDWORD lpdwDaclSize,
  7342. OUT PACL pSacl,
  7343. OUT LPDWORD lpdwSaclSize,
  7344. OUT PSID pOwner,
  7345. OUT LPDWORD lpdwOwnerSize,
  7346. OUT PSID pPrimaryGroup,
  7347. OUT LPDWORD lpdwPrimaryGroupSize
  7348. );
  7349. WINADVAPI
  7350. BOOL
  7351. WINAPI
  7352. MakeAbsoluteSD2 (
  7353. IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  7354. OUT LPDWORD lpdwBufferSize
  7355. );
  7356. WINADVAPI
  7357. BOOL
  7358. WINAPI
  7359. SetFileSecurityA (
  7360. IN LPCSTR lpFileName,
  7361. IN SECURITY_INFORMATION SecurityInformation,
  7362. IN PSECURITY_DESCRIPTOR pSecurityDescriptor
  7363. );
  7364. WINADVAPI
  7365. BOOL
  7366. WINAPI
  7367. SetFileSecurityW (
  7368. IN LPCWSTR lpFileName,
  7369. IN SECURITY_INFORMATION SecurityInformation,
  7370. IN PSECURITY_DESCRIPTOR pSecurityDescriptor
  7371. );
  7372. #ifdef UNICODE
  7373. #define SetFileSecurity SetFileSecurityW
  7374. #else
  7375. #define SetFileSecurity SetFileSecurityA
  7376. #endif // !UNICODE
  7377. WINADVAPI
  7378. BOOL
  7379. WINAPI
  7380. GetFileSecurityA (
  7381. IN LPCSTR lpFileName,
  7382. IN SECURITY_INFORMATION RequestedInformation,
  7383. OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7384. IN DWORD nLength,
  7385. OUT LPDWORD lpnLengthNeeded
  7386. );
  7387. WINADVAPI
  7388. BOOL
  7389. WINAPI
  7390. GetFileSecurityW (
  7391. IN LPCWSTR lpFileName,
  7392. IN SECURITY_INFORMATION RequestedInformation,
  7393. OUT PSECURITY_DESCRIPTOR pSecurityDescriptor,
  7394. IN DWORD nLength,
  7395. OUT LPDWORD lpnLengthNeeded
  7396. );
  7397. #ifdef UNICODE
  7398. #define GetFileSecurity GetFileSecurityW
  7399. #else
  7400. #define GetFileSecurity GetFileSecurityA
  7401. #endif // !UNICODE
  7402. WINADVAPI
  7403. BOOL
  7404. WINAPI
  7405. SetKernelObjectSecurity (
  7406. IN HANDLE Handle,
  7407. IN SECURITY_INFORMATION SecurityInformation,
  7408. IN PSECURITY_DESCRIPTOR SecurityDescriptor
  7409. );
  7410. WINBASEAPI
  7411. HANDLE
  7412. WINAPI
  7413. FindFirstChangeNotificationA(
  7414. IN LPCSTR lpPathName,
  7415. IN BOOL bWatchSubtree,
  7416. IN DWORD dwNotifyFilter
  7417. );
  7418. WINBASEAPI
  7419. HANDLE
  7420. WINAPI
  7421. FindFirstChangeNotificationW(
  7422. IN LPCWSTR lpPathName,
  7423. IN BOOL bWatchSubtree,
  7424. IN DWORD dwNotifyFilter
  7425. );
  7426. #ifdef UNICODE
  7427. #define FindFirstChangeNotification FindFirstChangeNotificationW
  7428. #else
  7429. #define FindFirstChangeNotification FindFirstChangeNotificationA
  7430. #endif // !UNICODE
  7431. WINBASEAPI
  7432. BOOL
  7433. WINAPI
  7434. FindNextChangeNotification(
  7435. IN HANDLE hChangeHandle
  7436. );
  7437. WINBASEAPI
  7438. BOOL
  7439. WINAPI
  7440. FindCloseChangeNotification(
  7441. IN HANDLE hChangeHandle
  7442. );
  7443. #if(_WIN32_WINNT >= 0x0400)
  7444. WINBASEAPI
  7445. BOOL
  7446. WINAPI
  7447. ReadDirectoryChangesW(
  7448. IN HANDLE hDirectory,
  7449. IN OUT LPVOID lpBuffer,
  7450. IN DWORD nBufferLength,
  7451. IN BOOL bWatchSubtree,
  7452. IN DWORD dwNotifyFilter,
  7453. OUT LPDWORD lpBytesReturned,
  7454. IN LPOVERLAPPED lpOverlapped,
  7455. IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
  7456. );
  7457. #endif /* _WIN32_WINNT >= 0x0400 */
  7458. WINBASEAPI
  7459. BOOL
  7460. WINAPI
  7461. VirtualLock(
  7462. IN LPVOID lpAddress,
  7463. IN SIZE_T dwSize
  7464. );
  7465. WINBASEAPI
  7466. BOOL
  7467. WINAPI
  7468. VirtualUnlock(
  7469. IN LPVOID lpAddress,
  7470. IN SIZE_T dwSize
  7471. );
  7472. WINBASEAPI
  7473. LPVOID
  7474. WINAPI
  7475. MapViewOfFileEx(
  7476. IN HANDLE hFileMappingObject,
  7477. IN DWORD dwDesiredAccess,
  7478. IN DWORD dwFileOffsetHigh,
  7479. IN DWORD dwFileOffsetLow,
  7480. IN SIZE_T dwNumberOfBytesToMap,
  7481. IN LPVOID lpBaseAddress
  7482. );
  7483. WINBASEAPI
  7484. BOOL
  7485. WINAPI
  7486. SetPriorityClass(
  7487. IN HANDLE hProcess,
  7488. IN DWORD dwPriorityClass
  7489. );
  7490. WINBASEAPI
  7491. DWORD
  7492. WINAPI
  7493. GetPriorityClass(
  7494. IN HANDLE hProcess
  7495. );
  7496. WINBASEAPI
  7497. BOOL
  7498. WINAPI
  7499. IsBadReadPtr(
  7500. IN CONST VOID *lp,
  7501. IN UINT_PTR ucb
  7502. );
  7503. WINBASEAPI
  7504. BOOL
  7505. WINAPI
  7506. IsBadWritePtr(
  7507. IN LPVOID lp,
  7508. IN UINT_PTR ucb
  7509. );
  7510. WINBASEAPI
  7511. BOOL
  7512. WINAPI
  7513. IsBadHugeReadPtr(
  7514. IN CONST VOID *lp,
  7515. IN UINT_PTR ucb
  7516. );
  7517. WINBASEAPI
  7518. BOOL
  7519. WINAPI
  7520. IsBadHugeWritePtr(
  7521. IN LPVOID lp,
  7522. IN UINT_PTR ucb
  7523. );
  7524. WINBASEAPI
  7525. BOOL
  7526. WINAPI
  7527. IsBadCodePtr(
  7528. IN FARPROC lpfn
  7529. );
  7530. WINBASEAPI
  7531. BOOL
  7532. WINAPI
  7533. IsBadStringPtrA(
  7534. IN LPCSTR lpsz,
  7535. IN UINT_PTR ucchMax
  7536. );
  7537. WINBASEAPI
  7538. BOOL
  7539. WINAPI
  7540. IsBadStringPtrW(
  7541. IN LPCWSTR lpsz,
  7542. IN UINT_PTR ucchMax
  7543. );
  7544. #ifdef UNICODE
  7545. #define IsBadStringPtr IsBadStringPtrW
  7546. #else
  7547. #define IsBadStringPtr IsBadStringPtrA
  7548. #endif // !UNICODE
  7549. WINADVAPI
  7550. BOOL
  7551. WINAPI
  7552. LookupAccountSidA(
  7553. IN LPCSTR lpSystemName,
  7554. IN PSID Sid,
  7555. OUT LPSTR Name,
  7556. IN OUT LPDWORD cbName,
  7557. OUT LPSTR ReferencedDomainName,
  7558. IN OUT LPDWORD cbReferencedDomainName,
  7559. OUT PSID_NAME_USE peUse
  7560. );
  7561. WINADVAPI
  7562. BOOL
  7563. WINAPI
  7564. LookupAccountSidW(
  7565. IN LPCWSTR lpSystemName,
  7566. IN PSID Sid,
  7567. OUT LPWSTR Name,
  7568. IN OUT LPDWORD cbName,
  7569. OUT LPWSTR ReferencedDomainName,
  7570. IN OUT LPDWORD cbReferencedDomainName,
  7571. OUT PSID_NAME_USE peUse
  7572. );
  7573. #ifdef UNICODE
  7574. #define LookupAccountSid LookupAccountSidW
  7575. #else
  7576. #define LookupAccountSid LookupAccountSidA
  7577. #endif // !UNICODE
  7578. WINADVAPI
  7579. BOOL
  7580. WINAPI
  7581. LookupAccountNameA(
  7582. IN LPCSTR lpSystemName,
  7583. IN LPCSTR lpAccountName,
  7584. OUT PSID Sid,
  7585. IN OUT LPDWORD cbSid,
  7586. OUT LPSTR ReferencedDomainName,
  7587. IN OUT LPDWORD cbReferencedDomainName,
  7588. OUT PSID_NAME_USE peUse
  7589. );
  7590. WINADVAPI
  7591. BOOL
  7592. WINAPI
  7593. LookupAccountNameW(
  7594. IN LPCWSTR lpSystemName,
  7595. IN LPCWSTR lpAccountName,
  7596. OUT PSID Sid,
  7597. IN OUT LPDWORD cbSid,
  7598. OUT LPWSTR ReferencedDomainName,
  7599. IN OUT LPDWORD cbReferencedDomainName,
  7600. OUT PSID_NAME_USE peUse
  7601. );
  7602. #ifdef UNICODE
  7603. #define LookupAccountName LookupAccountNameW
  7604. #else
  7605. #define LookupAccountName LookupAccountNameA
  7606. #endif // !UNICODE
  7607. WINADVAPI
  7608. BOOL
  7609. WINAPI
  7610. LookupPrivilegeValueA(
  7611. IN LPCSTR lpSystemName,
  7612. IN LPCSTR lpName,
  7613. OUT PLUID lpLuid
  7614. );
  7615. WINADVAPI
  7616. BOOL
  7617. WINAPI
  7618. LookupPrivilegeValueW(
  7619. IN LPCWSTR lpSystemName,
  7620. IN LPCWSTR lpName,
  7621. OUT PLUID lpLuid
  7622. );
  7623. #ifdef UNICODE
  7624. #define LookupPrivilegeValue LookupPrivilegeValueW
  7625. #else
  7626. #define LookupPrivilegeValue LookupPrivilegeValueA
  7627. #endif // !UNICODE
  7628. WINADVAPI
  7629. BOOL
  7630. WINAPI
  7631. LookupPrivilegeNameA(
  7632. IN LPCSTR lpSystemName,
  7633. IN PLUID lpLuid,
  7634. OUT LPSTR lpName,
  7635. IN OUT LPDWORD cbName
  7636. );
  7637. WINADVAPI
  7638. BOOL
  7639. WINAPI
  7640. LookupPrivilegeNameW(
  7641. IN LPCWSTR lpSystemName,
  7642. IN PLUID lpLuid,
  7643. OUT LPWSTR lpName,
  7644. IN OUT LPDWORD cbName
  7645. );
  7646. #ifdef UNICODE
  7647. #define LookupPrivilegeName LookupPrivilegeNameW
  7648. #else
  7649. #define LookupPrivilegeName LookupPrivilegeNameA
  7650. #endif // !UNICODE
  7651. WINADVAPI
  7652. BOOL
  7653. WINAPI
  7654. LookupPrivilegeDisplayNameA(
  7655. IN LPCSTR lpSystemName,
  7656. IN LPCSTR lpName,
  7657. OUT LPSTR lpDisplayName,
  7658. IN OUT LPDWORD cbDisplayName,
  7659. OUT LPDWORD lpLanguageId
  7660. );
  7661. WINADVAPI
  7662. BOOL
  7663. WINAPI
  7664. LookupPrivilegeDisplayNameW(
  7665. IN LPCWSTR lpSystemName,
  7666. IN LPCWSTR lpName,
  7667. OUT LPWSTR lpDisplayName,
  7668. IN OUT LPDWORD cbDisplayName,
  7669. OUT LPDWORD lpLanguageId
  7670. );
  7671. #ifdef UNICODE
  7672. #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
  7673. #else
  7674. #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
  7675. #endif // !UNICODE
  7676. WINADVAPI
  7677. BOOL
  7678. WINAPI
  7679. AllocateLocallyUniqueId(
  7680. OUT PLUID Luid
  7681. );
  7682. WINBASEAPI
  7683. BOOL
  7684. WINAPI
  7685. BuildCommDCBA(
  7686. IN LPCSTR lpDef,
  7687. OUT LPDCB lpDCB
  7688. );
  7689. WINBASEAPI
  7690. BOOL
  7691. WINAPI
  7692. BuildCommDCBW(
  7693. IN LPCWSTR lpDef,
  7694. OUT LPDCB lpDCB
  7695. );
  7696. #ifdef UNICODE
  7697. #define BuildCommDCB BuildCommDCBW
  7698. #else
  7699. #define BuildCommDCB BuildCommDCBA
  7700. #endif // !UNICODE
  7701. WINBASEAPI
  7702. BOOL
  7703. WINAPI
  7704. BuildCommDCBAndTimeoutsA(
  7705. IN LPCSTR lpDef,
  7706. OUT LPDCB lpDCB,
  7707. IN LPCOMMTIMEOUTS lpCommTimeouts
  7708. );
  7709. WINBASEAPI
  7710. BOOL
  7711. WINAPI
  7712. BuildCommDCBAndTimeoutsW(
  7713. IN LPCWSTR lpDef,
  7714. OUT LPDCB lpDCB,
  7715. IN LPCOMMTIMEOUTS lpCommTimeouts
  7716. );
  7717. #ifdef UNICODE
  7718. #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
  7719. #else
  7720. #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
  7721. #endif // !UNICODE
  7722. WINBASEAPI
  7723. BOOL
  7724. WINAPI
  7725. CommConfigDialogA(
  7726. IN LPCSTR lpszName,
  7727. IN HWND hWnd,
  7728. IN OUT LPCOMMCONFIG lpCC
  7729. );
  7730. WINBASEAPI
  7731. BOOL
  7732. WINAPI
  7733. CommConfigDialogW(
  7734. IN LPCWSTR lpszName,
  7735. IN HWND hWnd,
  7736. IN OUT LPCOMMCONFIG lpCC
  7737. );
  7738. #ifdef UNICODE
  7739. #define CommConfigDialog CommConfigDialogW
  7740. #else
  7741. #define CommConfigDialog CommConfigDialogA
  7742. #endif // !UNICODE
  7743. WINBASEAPI
  7744. BOOL
  7745. WINAPI
  7746. GetDefaultCommConfigA(
  7747. IN LPCSTR lpszName,
  7748. OUT LPCOMMCONFIG lpCC,
  7749. IN OUT LPDWORD lpdwSize
  7750. );
  7751. WINBASEAPI
  7752. BOOL
  7753. WINAPI
  7754. GetDefaultCommConfigW(
  7755. IN LPCWSTR lpszName,
  7756. OUT LPCOMMCONFIG lpCC,
  7757. IN OUT LPDWORD lpdwSize
  7758. );
  7759. #ifdef UNICODE
  7760. #define GetDefaultCommConfig GetDefaultCommConfigW
  7761. #else
  7762. #define GetDefaultCommConfig GetDefaultCommConfigA
  7763. #endif // !UNICODE
  7764. WINBASEAPI
  7765. BOOL
  7766. WINAPI
  7767. SetDefaultCommConfigA(
  7768. IN LPCSTR lpszName,
  7769. IN LPCOMMCONFIG lpCC,
  7770. IN DWORD dwSize
  7771. );
  7772. WINBASEAPI
  7773. BOOL
  7774. WINAPI
  7775. SetDefaultCommConfigW(
  7776. IN LPCWSTR lpszName,
  7777. IN LPCOMMCONFIG lpCC,
  7778. IN DWORD dwSize
  7779. );
  7780. #ifdef UNICODE
  7781. #define SetDefaultCommConfig SetDefaultCommConfigW
  7782. #else
  7783. #define SetDefaultCommConfig SetDefaultCommConfigA
  7784. #endif // !UNICODE
  7785. #ifndef _MAC
  7786. #define MAX_COMPUTERNAME_LENGTH 15
  7787. #else
  7788. #define MAX_COMPUTERNAME_LENGTH 31
  7789. #endif
  7790. WINBASEAPI
  7791. BOOL
  7792. WINAPI
  7793. GetComputerNameA (
  7794. OUT LPSTR lpBuffer,
  7795. IN OUT LPDWORD nSize
  7796. );
  7797. WINBASEAPI
  7798. BOOL
  7799. WINAPI
  7800. GetComputerNameW (
  7801. OUT LPWSTR lpBuffer,
  7802. IN OUT LPDWORD nSize
  7803. );
  7804. #ifdef UNICODE
  7805. #define GetComputerName GetComputerNameW
  7806. #else
  7807. #define GetComputerName GetComputerNameA
  7808. #endif // !UNICODE
  7809. WINBASEAPI
  7810. BOOL
  7811. WINAPI
  7812. SetComputerNameA (
  7813. IN LPCSTR lpComputerName
  7814. );
  7815. WINBASEAPI
  7816. BOOL
  7817. WINAPI
  7818. SetComputerNameW (
  7819. IN LPCWSTR lpComputerName
  7820. );
  7821. #ifdef UNICODE
  7822. #define SetComputerName SetComputerNameW
  7823. #else
  7824. #define SetComputerName SetComputerNameA
  7825. #endif // !UNICODE
  7826. #if (_WIN32_WINNT >= 0x0500)
  7827. typedef enum _COMPUTER_NAME_FORMAT {
  7828. ComputerNameNetBIOS,
  7829. ComputerNameDnsHostname,
  7830. ComputerNameDnsDomain,
  7831. ComputerNameDnsFullyQualified,
  7832. ComputerNamePhysicalNetBIOS,
  7833. ComputerNamePhysicalDnsHostname,
  7834. ComputerNamePhysicalDnsDomain,
  7835. ComputerNamePhysicalDnsFullyQualified,
  7836. ComputerNameMax
  7837. } COMPUTER_NAME_FORMAT ;
  7838. WINBASEAPI
  7839. BOOL
  7840. WINAPI
  7841. GetComputerNameExA (
  7842. IN COMPUTER_NAME_FORMAT NameType,
  7843. OUT LPSTR lpBuffer,
  7844. IN OUT LPDWORD nSize
  7845. );
  7846. WINBASEAPI
  7847. BOOL
  7848. WINAPI
  7849. GetComputerNameExW (
  7850. IN COMPUTER_NAME_FORMAT NameType,
  7851. OUT LPWSTR lpBuffer,
  7852. IN OUT LPDWORD nSize
  7853. );
  7854. #ifdef UNICODE
  7855. #define GetComputerNameEx GetComputerNameExW
  7856. #else
  7857. #define GetComputerNameEx GetComputerNameExA
  7858. #endif // !UNICODE
  7859. WINBASEAPI
  7860. BOOL
  7861. WINAPI
  7862. SetComputerNameExA (
  7863. IN COMPUTER_NAME_FORMAT NameType,
  7864. IN LPCSTR lpBuffer
  7865. );
  7866. WINBASEAPI
  7867. BOOL
  7868. WINAPI
  7869. SetComputerNameExW (
  7870. IN COMPUTER_NAME_FORMAT NameType,
  7871. IN LPCWSTR lpBuffer
  7872. );
  7873. #ifdef UNICODE
  7874. #define SetComputerNameEx SetComputerNameExW
  7875. #else
  7876. #define SetComputerNameEx SetComputerNameExA
  7877. #endif // !UNICODE
  7878. WINBASEAPI
  7879. DWORD
  7880. WINAPI
  7881. AddLocalAlternateComputerNameA (
  7882. IN LPCSTR lpDnsFQHostname,
  7883. IN ULONG ulFlags
  7884. );
  7885. WINBASEAPI
  7886. DWORD
  7887. WINAPI
  7888. AddLocalAlternateComputerNameW (
  7889. IN LPCWSTR lpDnsFQHostname,
  7890. IN ULONG ulFlags
  7891. );
  7892. #ifdef UNICODE
  7893. #define AddLocalAlternateComputerName AddLocalAlternateComputerNameW
  7894. #else
  7895. #define AddLocalAlternateComputerName AddLocalAlternateComputerNameA
  7896. #endif // !UNICODE
  7897. WINBASEAPI
  7898. DWORD
  7899. WINAPI
  7900. RemoveLocalAlternateComputerNameA (
  7901. IN LPCSTR lpAltDnsFQHostname,
  7902. IN ULONG ulFlags
  7903. );
  7904. WINBASEAPI
  7905. DWORD
  7906. WINAPI
  7907. RemoveLocalAlternateComputerNameW (
  7908. IN LPCWSTR lpAltDnsFQHostname,
  7909. IN ULONG ulFlags
  7910. );
  7911. #ifdef UNICODE
  7912. #define RemoveLocalAlternateComputerName RemoveLocalAlternateComputerNameW
  7913. #else
  7914. #define RemoveLocalAlternateComputerName RemoveLocalAlternateComputerNameA
  7915. #endif // !UNICODE
  7916. WINBASEAPI
  7917. DWORD
  7918. WINAPI
  7919. SetLocalPrimaryComputerNameA (
  7920. IN LPCSTR lpAltDnsFQHostname,
  7921. IN ULONG ulFlags
  7922. );
  7923. WINBASEAPI
  7924. DWORD
  7925. WINAPI
  7926. SetLocalPrimaryComputerNameW (
  7927. IN LPCWSTR lpAltDnsFQHostname,
  7928. IN ULONG ulFlags
  7929. );
  7930. #ifdef UNICODE
  7931. #define SetLocalPrimaryComputerName SetLocalPrimaryComputerNameW
  7932. #else
  7933. #define SetLocalPrimaryComputerName SetLocalPrimaryComputerNameA
  7934. #endif // !UNICODE
  7935. typedef enum _COMPUTER_NAME_TYPE {
  7936. PrimaryComputerName,
  7937. AlternateComputerNames,
  7938. AllComputerNames,
  7939. ComputerNameTypeMax
  7940. } COMPUTER_NAME_TYPE ;
  7941. WINBASEAPI
  7942. DWORD
  7943. WINAPI
  7944. EnumerateLocalComputerNamesA (
  7945. IN COMPUTER_NAME_TYPE NameType,
  7946. IN ULONG ulFlags,
  7947. IN OUT LPSTR lpDnsFQHostname,
  7948. IN OUT LPDWORD nSize
  7949. );
  7950. WINBASEAPI
  7951. DWORD
  7952. WINAPI
  7953. EnumerateLocalComputerNamesW (
  7954. IN COMPUTER_NAME_TYPE NameType,
  7955. IN ULONG ulFlags,
  7956. IN OUT LPWSTR lpDnsFQHostname,
  7957. IN OUT LPDWORD nSize
  7958. );
  7959. #ifdef UNICODE
  7960. #define EnumerateLocalComputerNames EnumerateLocalComputerNamesW
  7961. #else
  7962. #define EnumerateLocalComputerNames EnumerateLocalComputerNamesA
  7963. #endif // !UNICODE
  7964. WINBASEAPI
  7965. BOOL
  7966. WINAPI
  7967. DnsHostnameToComputerNameA (
  7968. IN LPCSTR Hostname,
  7969. OUT LPSTR ComputerName,
  7970. IN OUT LPDWORD nSize
  7971. );
  7972. WINBASEAPI
  7973. BOOL
  7974. WINAPI
  7975. DnsHostnameToComputerNameW (
  7976. IN LPCWSTR Hostname,
  7977. OUT LPWSTR ComputerName,
  7978. IN OUT LPDWORD nSize
  7979. );
  7980. #ifdef UNICODE
  7981. #define DnsHostnameToComputerName DnsHostnameToComputerNameW
  7982. #else
  7983. #define DnsHostnameToComputerName DnsHostnameToComputerNameA
  7984. #endif // !UNICODE
  7985. #endif // _WIN32_WINNT
  7986. WINADVAPI
  7987. BOOL
  7988. WINAPI
  7989. GetUserNameA (
  7990. OUT LPSTR lpBuffer,
  7991. IN OUT LPDWORD nSize
  7992. );
  7993. WINADVAPI
  7994. BOOL
  7995. WINAPI
  7996. GetUserNameW (
  7997. OUT LPWSTR lpBuffer,
  7998. IN OUT LPDWORD nSize
  7999. );
  8000. #ifdef UNICODE
  8001. #define GetUserName GetUserNameW
  8002. #else
  8003. #define GetUserName GetUserNameA
  8004. #endif // !UNICODE
  8005. //
  8006. // Logon Support APIs
  8007. //
  8008. #define LOGON32_LOGON_INTERACTIVE 2
  8009. #define LOGON32_LOGON_NETWORK 3
  8010. #define LOGON32_LOGON_BATCH 4
  8011. #define LOGON32_LOGON_SERVICE 5
  8012. #define LOGON32_LOGON_UNLOCK 7
  8013. #if(_WIN32_WINNT >= 0x0500)
  8014. #define LOGON32_LOGON_NETWORK_CLEARTEXT 8
  8015. #define LOGON32_LOGON_NEW_CREDENTIALS 9
  8016. #endif // (_WIN32_WINNT >= 0x0500)
  8017. #define LOGON32_PROVIDER_DEFAULT 0
  8018. #define LOGON32_PROVIDER_WINNT35 1
  8019. #if(_WIN32_WINNT >= 0x0400)
  8020. #define LOGON32_PROVIDER_WINNT40 2
  8021. #endif /* _WIN32_WINNT >= 0x0400 */
  8022. #if(_WIN32_WINNT >= 0x0500)
  8023. #define LOGON32_PROVIDER_WINNT50 3
  8024. #endif // (_WIN32_WINNT >= 0x0500)
  8025. WINADVAPI
  8026. BOOL
  8027. WINAPI
  8028. LogonUserA (
  8029. IN LPSTR lpszUsername,
  8030. IN LPSTR lpszDomain,
  8031. IN LPSTR lpszPassword,
  8032. IN DWORD dwLogonType,
  8033. IN DWORD dwLogonProvider,
  8034. OUT PHANDLE phToken
  8035. );
  8036. WINADVAPI
  8037. BOOL
  8038. WINAPI
  8039. LogonUserW (
  8040. IN LPWSTR lpszUsername,
  8041. IN LPWSTR lpszDomain,
  8042. IN LPWSTR lpszPassword,
  8043. IN DWORD dwLogonType,
  8044. IN DWORD dwLogonProvider,
  8045. OUT PHANDLE phToken
  8046. );
  8047. #ifdef UNICODE
  8048. #define LogonUser LogonUserW
  8049. #else
  8050. #define LogonUser LogonUserA
  8051. #endif // !UNICODE
  8052. WINADVAPI
  8053. BOOL
  8054. WINAPI
  8055. LogonUserExA (
  8056. IN LPSTR lpszUsername,
  8057. IN LPSTR lpszDomain,
  8058. IN LPSTR lpszPassword,
  8059. IN DWORD dwLogonType,
  8060. IN DWORD dwLogonProvider,
  8061. OUT PHANDLE phToken OPTIONAL,
  8062. OUT PSID *ppLogonSid OPTIONAL,
  8063. OUT PVOID *ppProfileBuffer OPTIONAL,
  8064. OUT LPDWORD pdwProfileLength OPTIONAL,
  8065. OUT PQUOTA_LIMITS pQuotaLimits OPTIONAL
  8066. );
  8067. WINADVAPI
  8068. BOOL
  8069. WINAPI
  8070. LogonUserExW (
  8071. IN LPWSTR lpszUsername,
  8072. IN LPWSTR lpszDomain,
  8073. IN LPWSTR lpszPassword,
  8074. IN DWORD dwLogonType,
  8075. IN DWORD dwLogonProvider,
  8076. OUT PHANDLE phToken OPTIONAL,
  8077. OUT PSID *ppLogonSid OPTIONAL,
  8078. OUT PVOID *ppProfileBuffer OPTIONAL,
  8079. OUT LPDWORD pdwProfileLength OPTIONAL,
  8080. OUT PQUOTA_LIMITS pQuotaLimits OPTIONAL
  8081. );
  8082. #ifdef UNICODE
  8083. #define LogonUserEx LogonUserExW
  8084. #else
  8085. #define LogonUserEx LogonUserExA
  8086. #endif // !UNICODE
  8087. WINADVAPI
  8088. BOOL
  8089. WINAPI
  8090. ImpersonateLoggedOnUser(
  8091. IN HANDLE hToken
  8092. );
  8093. WINADVAPI
  8094. BOOL
  8095. WINAPI
  8096. CreateProcessAsUserA (
  8097. IN HANDLE hToken,
  8098. IN LPCSTR lpApplicationName,
  8099. IN LPSTR lpCommandLine,
  8100. IN LPSECURITY_ATTRIBUTES lpProcessAttributes,
  8101. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  8102. IN BOOL bInheritHandles,
  8103. IN DWORD dwCreationFlags,
  8104. IN LPVOID lpEnvironment,
  8105. IN LPCSTR lpCurrentDirectory,
  8106. IN LPSTARTUPINFOA lpStartupInfo,
  8107. OUT LPPROCESS_INFORMATION lpProcessInformation
  8108. );
  8109. WINADVAPI
  8110. BOOL
  8111. WINAPI
  8112. CreateProcessAsUserW (
  8113. IN HANDLE hToken,
  8114. IN LPCWSTR lpApplicationName,
  8115. IN LPWSTR lpCommandLine,
  8116. IN LPSECURITY_ATTRIBUTES lpProcessAttributes,
  8117. IN LPSECURITY_ATTRIBUTES lpThreadAttributes,
  8118. IN BOOL bInheritHandles,
  8119. IN DWORD dwCreationFlags,
  8120. IN LPVOID lpEnvironment,
  8121. IN LPCWSTR lpCurrentDirectory,
  8122. IN LPSTARTUPINFOW lpStartupInfo,
  8123. OUT LPPROCESS_INFORMATION lpProcessInformation
  8124. );
  8125. #ifdef UNICODE
  8126. #define CreateProcessAsUser CreateProcessAsUserW
  8127. #else
  8128. #define CreateProcessAsUser CreateProcessAsUserA
  8129. #endif // !UNICODE
  8130. #if(_WIN32_WINNT >= 0x0500)
  8131. //
  8132. // LogonFlags
  8133. //
  8134. #define LOGON_WITH_PROFILE 0x00000001
  8135. #define LOGON_NETCREDENTIALS_ONLY 0x00000002
  8136. WINADVAPI
  8137. BOOL
  8138. WINAPI
  8139. CreateProcessWithLogonW(
  8140. LPCWSTR lpUsername,
  8141. LPCWSTR lpDomain,
  8142. LPCWSTR lpPassword,
  8143. DWORD dwLogonFlags,
  8144. LPCWSTR lpApplicationName,
  8145. LPWSTR lpCommandLine,
  8146. DWORD dwCreationFlags,
  8147. LPVOID lpEnvironment,
  8148. LPCWSTR lpCurrentDirectory,
  8149. LPSTARTUPINFOW lpStartupInfo,
  8150. LPPROCESS_INFORMATION lpProcessInformation
  8151. );
  8152. #endif // (_WIN32_WINNT >= 0x0500)
  8153. WINADVAPI
  8154. BOOL
  8155. APIENTRY
  8156. ImpersonateAnonymousToken(
  8157. IN HANDLE ThreadHandle
  8158. );
  8159. WINADVAPI
  8160. BOOL
  8161. WINAPI
  8162. DuplicateTokenEx(
  8163. IN HANDLE hExistingToken,
  8164. IN DWORD dwDesiredAccess,
  8165. IN LPSECURITY_ATTRIBUTES lpTokenAttributes,
  8166. IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
  8167. IN TOKEN_TYPE TokenType,
  8168. OUT PHANDLE phNewToken);
  8169. WINADVAPI
  8170. BOOL
  8171. APIENTRY
  8172. CreateRestrictedToken(
  8173. IN HANDLE ExistingTokenHandle,
  8174. IN DWORD Flags,
  8175. IN DWORD DisableSidCount,
  8176. IN PSID_AND_ATTRIBUTES SidsToDisable OPTIONAL,
  8177. IN DWORD DeletePrivilegeCount,
  8178. IN PLUID_AND_ATTRIBUTES PrivilegesToDelete OPTIONAL,
  8179. IN DWORD RestrictedSidCount,
  8180. IN PSID_AND_ATTRIBUTES SidsToRestrict OPTIONAL,
  8181. OUT PHANDLE NewTokenHandle
  8182. );
  8183. WINADVAPI
  8184. BOOL
  8185. WINAPI
  8186. IsTokenRestricted(
  8187. IN HANDLE TokenHandle
  8188. );
  8189. WINADVAPI
  8190. BOOL
  8191. WINAPI
  8192. IsTokenUntrusted(
  8193. IN HANDLE TokenHandle
  8194. );
  8195. BOOL
  8196. APIENTRY
  8197. CheckTokenMembership(
  8198. IN HANDLE TokenHandle OPTIONAL,
  8199. IN PSID SidToCheck,
  8200. OUT PBOOL IsMember
  8201. );
  8202. //
  8203. // Thread pool API's
  8204. //
  8205. #if (_WIN32_WINNT >= 0x0500)
  8206. typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK ;
  8207. WINBASEAPI
  8208. BOOL
  8209. WINAPI
  8210. RegisterWaitForSingleObject(
  8211. PHANDLE phNewWaitObject,
  8212. HANDLE hObject,
  8213. WAITORTIMERCALLBACK Callback,
  8214. PVOID Context,
  8215. ULONG dwMilliseconds,
  8216. ULONG dwFlags
  8217. );
  8218. WINBASEAPI
  8219. HANDLE
  8220. WINAPI
  8221. RegisterWaitForSingleObjectEx(
  8222. HANDLE hObject,
  8223. WAITORTIMERCALLBACK Callback,
  8224. PVOID Context,
  8225. ULONG dwMilliseconds,
  8226. ULONG dwFlags
  8227. );
  8228. WINBASEAPI
  8229. BOOL
  8230. WINAPI
  8231. UnregisterWait(
  8232. HANDLE WaitHandle
  8233. );
  8234. WINBASEAPI
  8235. BOOL
  8236. WINAPI
  8237. UnregisterWaitEx(
  8238. HANDLE WaitHandle,
  8239. HANDLE CompletionEvent
  8240. );
  8241. WINBASEAPI
  8242. BOOL
  8243. WINAPI
  8244. QueueUserWorkItem(
  8245. LPTHREAD_START_ROUTINE Function,
  8246. PVOID Context,
  8247. ULONG Flags
  8248. );
  8249. WINBASEAPI
  8250. BOOL
  8251. WINAPI
  8252. BindIoCompletionCallback (
  8253. HANDLE FileHandle,
  8254. LPOVERLAPPED_COMPLETION_ROUTINE Function,
  8255. ULONG Flags
  8256. );
  8257. WINBASEAPI
  8258. HANDLE
  8259. WINAPI
  8260. CreateTimerQueue(
  8261. VOID
  8262. );
  8263. WINBASEAPI
  8264. BOOL
  8265. WINAPI
  8266. CreateTimerQueueTimer(
  8267. PHANDLE phNewTimer,
  8268. HANDLE TimerQueue,
  8269. WAITORTIMERCALLBACK Callback,
  8270. PVOID Parameter,
  8271. DWORD DueTime,
  8272. DWORD Period,
  8273. ULONG Flags
  8274. ) ;
  8275. WINBASEAPI
  8276. BOOL
  8277. WINAPI
  8278. ChangeTimerQueueTimer(
  8279. HANDLE TimerQueue,
  8280. HANDLE Timer,
  8281. ULONG DueTime,
  8282. ULONG Period
  8283. );
  8284. WINBASEAPI
  8285. BOOL
  8286. WINAPI
  8287. DeleteTimerQueueTimer(
  8288. HANDLE TimerQueue,
  8289. HANDLE Timer,
  8290. HANDLE CompletionEvent
  8291. );
  8292. WINBASEAPI
  8293. BOOL
  8294. WINAPI
  8295. DeleteTimerQueueEx(
  8296. HANDLE TimerQueue,
  8297. HANDLE CompletionEvent
  8298. );
  8299. WINBASEAPI
  8300. HANDLE
  8301. WINAPI
  8302. SetTimerQueueTimer(
  8303. HANDLE TimerQueue,
  8304. WAITORTIMERCALLBACK Callback,
  8305. PVOID Parameter,
  8306. DWORD DueTime,
  8307. DWORD Period,
  8308. BOOL PreferIo
  8309. );
  8310. WINBASEAPI
  8311. BOOL
  8312. WINAPI
  8313. CancelTimerQueueTimer(
  8314. HANDLE TimerQueue,
  8315. HANDLE Timer
  8316. );
  8317. WINBASEAPI
  8318. BOOL
  8319. WINAPI
  8320. DeleteTimerQueue(
  8321. HANDLE TimerQueue
  8322. );
  8323. #endif // _WIN32_WINNT
  8324. #if(_WIN32_WINNT >= 0x0400)
  8325. //
  8326. // Plug-and-Play API's
  8327. //
  8328. #define HW_PROFILE_GUIDLEN 39 // 36-characters plus NULL terminator
  8329. #define MAX_PROFILE_LEN 80
  8330. #define DOCKINFO_UNDOCKED (0x1)
  8331. #define DOCKINFO_DOCKED (0x2)
  8332. #define DOCKINFO_USER_SUPPLIED (0x4)
  8333. #define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
  8334. #define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
  8335. typedef struct tagHW_PROFILE_INFOA {
  8336. DWORD dwDockInfo;
  8337. CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
  8338. CHAR szHwProfileName[MAX_PROFILE_LEN];
  8339. } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA;
  8340. typedef struct tagHW_PROFILE_INFOW {
  8341. DWORD dwDockInfo;
  8342. WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
  8343. WCHAR szHwProfileName[MAX_PROFILE_LEN];
  8344. } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW;
  8345. #ifdef UNICODE
  8346. typedef HW_PROFILE_INFOW HW_PROFILE_INFO;
  8347. typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
  8348. #else
  8349. typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
  8350. typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
  8351. #endif // UNICODE
  8352. WINADVAPI
  8353. BOOL
  8354. WINAPI
  8355. GetCurrentHwProfileA (
  8356. OUT LPHW_PROFILE_INFOA lpHwProfileInfo
  8357. );
  8358. WINADVAPI
  8359. BOOL
  8360. WINAPI
  8361. GetCurrentHwProfileW (
  8362. OUT LPHW_PROFILE_INFOW lpHwProfileInfo
  8363. );
  8364. #ifdef UNICODE
  8365. #define GetCurrentHwProfile GetCurrentHwProfileW
  8366. #else
  8367. #define GetCurrentHwProfile GetCurrentHwProfileA
  8368. #endif // !UNICODE
  8369. #endif /* _WIN32_WINNT >= 0x0400 */
  8370. //
  8371. // Performance counter API's
  8372. //
  8373. WINBASEAPI
  8374. BOOL
  8375. WINAPI
  8376. QueryPerformanceCounter(
  8377. OUT LARGE_INTEGER *lpPerformanceCount
  8378. );
  8379. WINBASEAPI
  8380. BOOL
  8381. WINAPI
  8382. QueryPerformanceFrequency(
  8383. OUT LARGE_INTEGER *lpFrequency
  8384. );
  8385. WINBASEAPI
  8386. BOOL
  8387. WINAPI
  8388. GetVersionExA(
  8389. IN OUT LPOSVERSIONINFOA lpVersionInformation
  8390. );
  8391. WINBASEAPI
  8392. BOOL
  8393. WINAPI
  8394. GetVersionExW(
  8395. IN OUT LPOSVERSIONINFOW lpVersionInformation
  8396. );
  8397. #ifdef UNICODE
  8398. #define GetVersionEx GetVersionExW
  8399. #else
  8400. #define GetVersionEx GetVersionExA
  8401. #endif // !UNICODE
  8402. WINBASEAPI
  8403. BOOL
  8404. WINAPI
  8405. VerifyVersionInfoA(
  8406. IN LPOSVERSIONINFOEXA lpVersionInformation,
  8407. IN DWORD dwTypeMask,
  8408. IN DWORDLONG dwlConditionMask
  8409. );
  8410. WINBASEAPI
  8411. BOOL
  8412. WINAPI
  8413. VerifyVersionInfoW(
  8414. IN LPOSVERSIONINFOEXW lpVersionInformation,
  8415. IN DWORD dwTypeMask,
  8416. IN DWORDLONG dwlConditionMask
  8417. );
  8418. #ifdef UNICODE
  8419. #define VerifyVersionInfo VerifyVersionInfoW
  8420. #else
  8421. #define VerifyVersionInfo VerifyVersionInfoA
  8422. #endif // !UNICODE
  8423. // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base
  8424. // API functions.
  8425. //
  8426. #include <winerror.h>
  8427. /* Abnormal termination codes */
  8428. #define TC_NORMAL 0
  8429. #define TC_HARDERR 1
  8430. #define TC_GP_TRAP 2
  8431. #define TC_SIGNAL 3
  8432. #if(WINVER >= 0x0400)
  8433. //
  8434. // Power Management APIs
  8435. //
  8436. #define AC_LINE_OFFLINE 0x00
  8437. #define AC_LINE_ONLINE 0x01
  8438. #define AC_LINE_BACKUP_POWER 0x02
  8439. #define AC_LINE_UNKNOWN 0xFF
  8440. #define BATTERY_FLAG_HIGH 0x01
  8441. #define BATTERY_FLAG_LOW 0x02
  8442. #define BATTERY_FLAG_CRITICAL 0x04
  8443. #define BATTERY_FLAG_CHARGING 0x08
  8444. #define BATTERY_FLAG_NO_BATTERY 0x80
  8445. #define BATTERY_FLAG_UNKNOWN 0xFF
  8446. #define BATTERY_PERCENTAGE_UNKNOWN 0xFF
  8447. #define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF
  8448. typedef struct _SYSTEM_POWER_STATUS {
  8449. BYTE ACLineStatus;
  8450. BYTE BatteryFlag;
  8451. BYTE BatteryLifePercent;
  8452. BYTE Reserved1;
  8453. DWORD BatteryLifeTime;
  8454. DWORD BatteryFullLifeTime;
  8455. } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
  8456. BOOL
  8457. WINAPI
  8458. GetSystemPowerStatus(
  8459. OUT LPSYSTEM_POWER_STATUS lpSystemPowerStatus
  8460. );
  8461. BOOL
  8462. WINAPI
  8463. SetSystemPowerState(
  8464. IN BOOL fSuspend,
  8465. IN BOOL fForce
  8466. );
  8467. #endif /* WINVER >= 0x0400 */
  8468. #if (_WIN32_WINNT >= 0x0500)
  8469. //
  8470. // Very Large Memory API Subset
  8471. //
  8472. WINBASEAPI
  8473. BOOL
  8474. WINAPI
  8475. AllocateUserPhysicalPages(
  8476. IN HANDLE hProcess,
  8477. IN OUT PULONG_PTR NumberOfPages,
  8478. OUT PULONG_PTR PageArray
  8479. );
  8480. WINBASEAPI
  8481. BOOL
  8482. WINAPI
  8483. FreeUserPhysicalPages(
  8484. IN HANDLE hProcess,
  8485. IN OUT PULONG_PTR NumberOfPages,
  8486. IN PULONG_PTR PageArray
  8487. );
  8488. WINBASEAPI
  8489. BOOL
  8490. WINAPI
  8491. MapUserPhysicalPages(
  8492. IN PVOID VirtualAddress,
  8493. IN ULONG_PTR NumberOfPages,
  8494. IN PULONG_PTR PageArray OPTIONAL
  8495. );
  8496. WINBASEAPI
  8497. BOOL
  8498. WINAPI
  8499. MapUserPhysicalPagesScatter(
  8500. IN PVOID *VirtualAddresses,
  8501. IN ULONG_PTR NumberOfPages,
  8502. IN PULONG_PTR PageArray OPTIONAL
  8503. );
  8504. WINBASEAPI
  8505. HANDLE
  8506. WINAPI
  8507. CreateJobObjectA(
  8508. IN LPSECURITY_ATTRIBUTES lpJobAttributes,
  8509. IN LPCSTR lpName
  8510. );
  8511. WINBASEAPI
  8512. HANDLE
  8513. WINAPI
  8514. CreateJobObjectW(
  8515. IN LPSECURITY_ATTRIBUTES lpJobAttributes,
  8516. IN LPCWSTR lpName
  8517. );
  8518. #ifdef UNICODE
  8519. #define CreateJobObject CreateJobObjectW
  8520. #else
  8521. #define CreateJobObject CreateJobObjectA
  8522. #endif // !UNICODE
  8523. WINBASEAPI
  8524. HANDLE
  8525. WINAPI
  8526. OpenJobObjectA(
  8527. IN DWORD dwDesiredAccess,
  8528. IN BOOL bInheritHandle,
  8529. IN LPCSTR lpName
  8530. );
  8531. WINBASEAPI
  8532. HANDLE
  8533. WINAPI
  8534. OpenJobObjectW(
  8535. IN DWORD dwDesiredAccess,
  8536. IN BOOL bInheritHandle,
  8537. IN LPCWSTR lpName
  8538. );
  8539. #ifdef UNICODE
  8540. #define OpenJobObject OpenJobObjectW
  8541. #else
  8542. #define OpenJobObject OpenJobObjectA
  8543. #endif // !UNICODE
  8544. WINBASEAPI
  8545. BOOL
  8546. WINAPI
  8547. AssignProcessToJobObject(
  8548. IN HANDLE hJob,
  8549. IN HANDLE hProcess
  8550. );
  8551. WINBASEAPI
  8552. BOOL
  8553. WINAPI
  8554. TerminateJobObject(
  8555. IN HANDLE hJob,
  8556. IN UINT uExitCode
  8557. );
  8558. WINBASEAPI
  8559. BOOL
  8560. WINAPI
  8561. QueryInformationJobObject(
  8562. IN HANDLE hJob,
  8563. IN JOBOBJECTINFOCLASS JobObjectInformationClass,
  8564. OUT LPVOID lpJobObjectInformation,
  8565. IN DWORD cbJobObjectInformationLength,
  8566. OUT LPDWORD lpReturnLength
  8567. );
  8568. WINBASEAPI
  8569. BOOL
  8570. WINAPI
  8571. SetInformationJobObject(
  8572. IN HANDLE hJob,
  8573. IN JOBOBJECTINFOCLASS JobObjectInformationClass,
  8574. IN LPVOID lpJobObjectInformation,
  8575. IN DWORD cbJobObjectInformationLength
  8576. );
  8577. WINBASEAPI
  8578. BOOL
  8579. WINAPI
  8580. IsProcessInJob (
  8581. IN HANDLE ProcessHandle,
  8582. IN HANDLE JobHandle,
  8583. OUT PBOOL Result
  8584. );
  8585. WINBASEAPI
  8586. BOOL
  8587. WINAPI
  8588. CreateJobSet (
  8589. IN ULONG NumJob,
  8590. IN PJOB_SET_ARRAY UserJobSet,
  8591. IN ULONG Flags);
  8592. WINBASEAPI
  8593. PVOID
  8594. WINAPI
  8595. AddVectoredExceptionHandler(
  8596. IN ULONG FirstHandler,
  8597. IN PVECTORED_EXCEPTION_HANDLER VectoredHandler
  8598. );
  8599. WINBASEAPI
  8600. ULONG
  8601. WINAPI
  8602. RemoveVectoredExceptionHandler(
  8603. IN PVOID VectoredHandlerHandle
  8604. );
  8605. //
  8606. // New Volume Mount Point API.
  8607. //
  8608. WINBASEAPI
  8609. HANDLE
  8610. WINAPI
  8611. FindFirstVolumeA(
  8612. LPSTR lpszVolumeName,
  8613. DWORD cchBufferLength
  8614. );
  8615. WINBASEAPI
  8616. HANDLE
  8617. WINAPI
  8618. FindFirstVolumeW(
  8619. LPWSTR lpszVolumeName,
  8620. DWORD cchBufferLength
  8621. );
  8622. #ifdef UNICODE
  8623. #define FindFirstVolume FindFirstVolumeW
  8624. #else
  8625. #define FindFirstVolume FindFirstVolumeA
  8626. #endif // !UNICODE
  8627. WINBASEAPI
  8628. BOOL
  8629. WINAPI
  8630. FindNextVolumeA(
  8631. HANDLE hFindVolume,
  8632. LPSTR lpszVolumeName,
  8633. DWORD cchBufferLength
  8634. );
  8635. WINBASEAPI
  8636. BOOL
  8637. WINAPI
  8638. FindNextVolumeW(
  8639. HANDLE hFindVolume,
  8640. LPWSTR lpszVolumeName,
  8641. DWORD cchBufferLength
  8642. );
  8643. #ifdef UNICODE
  8644. #define FindNextVolume FindNextVolumeW
  8645. #else
  8646. #define FindNextVolume FindNextVolumeA
  8647. #endif // !UNICODE
  8648. WINBASEAPI
  8649. BOOL
  8650. WINAPI
  8651. FindVolumeClose(
  8652. HANDLE hFindVolume
  8653. );
  8654. WINBASEAPI
  8655. HANDLE
  8656. WINAPI
  8657. FindFirstVolumeMountPointA(
  8658. LPCSTR lpszRootPathName,
  8659. LPSTR lpszVolumeMountPoint,
  8660. DWORD cchBufferLength
  8661. );
  8662. WINBASEAPI
  8663. HANDLE
  8664. WINAPI
  8665. FindFirstVolumeMountPointW(
  8666. LPCWSTR lpszRootPathName,
  8667. LPWSTR lpszVolumeMountPoint,
  8668. DWORD cchBufferLength
  8669. );
  8670. #ifdef UNICODE
  8671. #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
  8672. #else
  8673. #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
  8674. #endif // !UNICODE
  8675. WINBASEAPI
  8676. BOOL
  8677. WINAPI
  8678. FindNextVolumeMountPointA(
  8679. HANDLE hFindVolumeMountPoint,
  8680. LPSTR lpszVolumeMountPoint,
  8681. DWORD cchBufferLength
  8682. );
  8683. WINBASEAPI
  8684. BOOL
  8685. WINAPI
  8686. FindNextVolumeMountPointW(
  8687. HANDLE hFindVolumeMountPoint,
  8688. LPWSTR lpszVolumeMountPoint,
  8689. DWORD cchBufferLength
  8690. );
  8691. #ifdef UNICODE
  8692. #define FindNextVolumeMountPoint FindNextVolumeMountPointW
  8693. #else
  8694. #define FindNextVolumeMountPoint FindNextVolumeMountPointA
  8695. #endif // !UNICODE
  8696. WINBASEAPI
  8697. BOOL
  8698. WINAPI
  8699. FindVolumeMountPointClose(
  8700. HANDLE hFindVolumeMountPoint
  8701. );
  8702. WINBASEAPI
  8703. BOOL
  8704. WINAPI
  8705. SetVolumeMountPointA(
  8706. LPCSTR lpszVolumeMountPoint,
  8707. LPCSTR lpszVolumeName
  8708. );
  8709. WINBASEAPI
  8710. BOOL
  8711. WINAPI
  8712. SetVolumeMountPointW(
  8713. LPCWSTR lpszVolumeMountPoint,
  8714. LPCWSTR lpszVolumeName
  8715. );
  8716. #ifdef UNICODE
  8717. #define SetVolumeMountPoint SetVolumeMountPointW
  8718. #else
  8719. #define SetVolumeMountPoint SetVolumeMountPointA
  8720. #endif // !UNICODE
  8721. WINBASEAPI
  8722. BOOL
  8723. WINAPI
  8724. DeleteVolumeMountPointA(
  8725. LPCSTR lpszVolumeMountPoint
  8726. );
  8727. WINBASEAPI
  8728. BOOL
  8729. WINAPI
  8730. DeleteVolumeMountPointW(
  8731. LPCWSTR lpszVolumeMountPoint
  8732. );
  8733. #ifdef UNICODE
  8734. #define DeleteVolumeMountPoint DeleteVolumeMountPointW
  8735. #else
  8736. #define DeleteVolumeMountPoint DeleteVolumeMountPointA
  8737. #endif // !UNICODE
  8738. WINBASEAPI
  8739. BOOL
  8740. WINAPI
  8741. GetVolumeNameForVolumeMountPointA(
  8742. LPCSTR lpszVolumeMountPoint,
  8743. LPSTR lpszVolumeName,
  8744. DWORD cchBufferLength
  8745. );
  8746. WINBASEAPI
  8747. BOOL
  8748. WINAPI
  8749. GetVolumeNameForVolumeMountPointW(
  8750. LPCWSTR lpszVolumeMountPoint,
  8751. LPWSTR lpszVolumeName,
  8752. DWORD cchBufferLength
  8753. );
  8754. #ifdef UNICODE
  8755. #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
  8756. #else
  8757. #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
  8758. #endif // !UNICODE
  8759. WINBASEAPI
  8760. BOOL
  8761. WINAPI
  8762. GetVolumePathNameA(
  8763. LPCSTR lpszFileName,
  8764. LPSTR lpszVolumePathName,
  8765. DWORD cchBufferLength
  8766. );
  8767. WINBASEAPI
  8768. BOOL
  8769. WINAPI
  8770. GetVolumePathNameW(
  8771. LPCWSTR lpszFileName,
  8772. LPWSTR lpszVolumePathName,
  8773. DWORD cchBufferLength
  8774. );
  8775. #ifdef UNICODE
  8776. #define GetVolumePathName GetVolumePathNameW
  8777. #else
  8778. #define GetVolumePathName GetVolumePathNameA
  8779. #endif // !UNICODE
  8780. WINBASEAPI
  8781. BOOL
  8782. WINAPI
  8783. GetVolumePathNamesForVolumeNameA(
  8784. LPCSTR lpszVolumeName,
  8785. LPSTR lpszVolumePathNames,
  8786. DWORD cchBufferLength,
  8787. PDWORD lpcchReturnLength
  8788. );
  8789. WINBASEAPI
  8790. BOOL
  8791. WINAPI
  8792. GetVolumePathNamesForVolumeNameW(
  8793. LPCWSTR lpszVolumeName,
  8794. LPWSTR lpszVolumePathNames,
  8795. DWORD cchBufferLength,
  8796. PDWORD lpcchReturnLength
  8797. );
  8798. #ifdef UNICODE
  8799. #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
  8800. #else
  8801. #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
  8802. #endif // !UNICODE
  8803. #endif
  8804. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
  8805. #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID (0x00000001)
  8806. #define ACTCTX_FLAG_LANGID_VALID (0x00000002)
  8807. #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID (0x00000004)
  8808. #define ACTCTX_FLAG_RESOURCE_NAME_VALID (0x00000008)
  8809. #define ACTCTX_FLAG_SET_PROCESS_DEFAULT (0x00000010)
  8810. #define ACTCTX_FLAG_APPLICATION_NAME_VALID (0x00000020)
  8811. #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF (0x00000040)
  8812. #define ACTCTX_FLAG_HMODULE_VALID (0x00000080)
  8813. typedef struct tagACTCTXA {
  8814. ULONG cbSize;
  8815. DWORD dwFlags;
  8816. LPCSTR lpSource;
  8817. USHORT wProcessorArchitecture;
  8818. LANGID wLangId;
  8819. LPCSTR lpAssemblyDirectory;
  8820. LPCSTR lpResourceName;
  8821. LPCSTR lpApplicationName;
  8822. HMODULE hModule;
  8823. } ACTCTXA, *PACTCTXA;
  8824. typedef struct tagACTCTXW {
  8825. ULONG cbSize;
  8826. DWORD dwFlags;
  8827. LPCWSTR lpSource;
  8828. USHORT wProcessorArchitecture;
  8829. LANGID wLangId;
  8830. LPCWSTR lpAssemblyDirectory;
  8831. LPCWSTR lpResourceName;
  8832. LPCWSTR lpApplicationName;
  8833. HMODULE hModule;
  8834. } ACTCTXW, *PACTCTXW;
  8835. #ifdef UNICODE
  8836. typedef ACTCTXW ACTCTX;
  8837. typedef PACTCTXW PACTCTX;
  8838. #else
  8839. typedef ACTCTXA ACTCTX;
  8840. typedef PACTCTXA PACTCTX;
  8841. #endif // UNICODE
  8842. typedef const ACTCTXA *PCACTCTXA;
  8843. typedef const ACTCTXW *PCACTCTXW;
  8844. #ifdef UNICODE
  8845. typedef ACTCTXW ACTCTX;
  8846. typedef PCACTCTXW PCACTCTX;
  8847. #else
  8848. typedef ACTCTXA ACTCTX;
  8849. typedef PCACTCTXA PCACTCTX;
  8850. #endif // UNICODE
  8851. #endif
  8852. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
  8853. WINBASEAPI
  8854. HANDLE
  8855. WINAPI
  8856. CreateActCtxA(
  8857. PCACTCTXA pActCtx
  8858. );
  8859. WINBASEAPI
  8860. HANDLE
  8861. WINAPI
  8862. CreateActCtxW(
  8863. PCACTCTXW pActCtx
  8864. );
  8865. #ifdef UNICODE
  8866. #define CreateActCtx CreateActCtxW
  8867. #else
  8868. #define CreateActCtx CreateActCtxA
  8869. #endif // !UNICODE
  8870. WINBASEAPI
  8871. VOID
  8872. WINAPI
  8873. AddRefActCtx(
  8874. HANDLE hActCtx
  8875. );
  8876. WINBASEAPI
  8877. VOID
  8878. WINAPI
  8879. ReleaseActCtx(
  8880. HANDLE hActCtx
  8881. );
  8882. WINBASEAPI
  8883. BOOL
  8884. WINAPI
  8885. ZombifyActCtx(
  8886. HANDLE hActCtx
  8887. );
  8888. WINBASEAPI
  8889. BOOL
  8890. WINAPI
  8891. ActivateActCtx(
  8892. HANDLE hActCtx,
  8893. ULONG_PTR *lpCookie
  8894. );
  8895. #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x00000001)
  8896. WINBASEAPI
  8897. BOOL
  8898. WINAPI
  8899. DeactivateActCtx(
  8900. DWORD dwFlags,
  8901. ULONG_PTR ulCookie
  8902. );
  8903. WINBASEAPI
  8904. BOOL
  8905. WINAPI
  8906. GetCurrentActCtx(
  8907. HANDLE *lphActCtx);
  8908. #endif
  8909. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
  8910. typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
  8911. ULONG cbSize;
  8912. ULONG ulDataFormatVersion;
  8913. PVOID lpData;
  8914. ULONG ulLength;
  8915. PVOID lpSectionGlobalData;
  8916. ULONG ulSectionGlobalDataLength;
  8917. PVOID lpSectionBase;
  8918. ULONG ulSectionTotalLength;
  8919. HANDLE hActCtx;
  8920. ULONG ulAssemblyRosterIndex;
  8921. } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600;
  8922. typedef const ACTCTX_SECTION_KEYED_DATA_2600 * PCACTCTX_SECTION_KEYED_DATA_2600;
  8923. typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
  8924. PVOID lpInformation;
  8925. PVOID lpSectionBase;
  8926. ULONG ulSectionLength;
  8927. PVOID lpSectionGlobalDataBase;
  8928. ULONG ulSectionGlobalDataLength;
  8929. } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  8930. typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
  8931. typedef struct tagACTCTX_SECTION_KEYED_DATA {
  8932. ULONG cbSize;
  8933. ULONG ulDataFormatVersion;
  8934. PVOID lpData;
  8935. ULONG ulLength;
  8936. PVOID lpSectionGlobalData;
  8937. ULONG ulSectionGlobalDataLength;
  8938. PVOID lpSectionBase;
  8939. ULONG ulSectionTotalLength;
  8940. HANDLE hActCtx;
  8941. ULONG ulAssemblyRosterIndex;
  8942. // 2600 stops here
  8943. ULONG ulFlags;
  8944. ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
  8945. } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
  8946. typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA;
  8947. #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX (0x00000001)
  8948. #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS (0x00000002)
  8949. #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA (0x00000004)
  8950. #endif
  8951. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
  8952. WINBASEAPI
  8953. BOOL
  8954. WINAPI
  8955. FindActCtxSectionStringA(
  8956. DWORD dwFlags,
  8957. const GUID *lpExtensionGuid,
  8958. ULONG ulSectionId,
  8959. LPCSTR lpStringToFind,
  8960. PACTCTX_SECTION_KEYED_DATA ReturnedData
  8961. );
  8962. WINBASEAPI
  8963. BOOL
  8964. WINAPI
  8965. FindActCtxSectionStringW(
  8966. DWORD dwFlags,
  8967. const GUID *lpExtensionGuid,
  8968. ULONG ulSectionId,
  8969. LPCWSTR lpStringToFind,
  8970. PACTCTX_SECTION_KEYED_DATA ReturnedData
  8971. );
  8972. #ifdef UNICODE
  8973. #define FindActCtxSectionString FindActCtxSectionStringW
  8974. #else
  8975. #define FindActCtxSectionString FindActCtxSectionStringA
  8976. #endif // !UNICODE
  8977. WINBASEAPI
  8978. BOOL
  8979. WINAPI
  8980. FindActCtxSectionGuid(
  8981. DWORD dwFlags,
  8982. const GUID *lpExtensionGuid,
  8983. ULONG ulSectionId,
  8984. const GUID *lpGuidToFind,
  8985. PACTCTX_SECTION_KEYED_DATA ReturnedData
  8986. );
  8987. #endif
  8988. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED
  8989. #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
  8990. #if !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)
  8991. typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
  8992. HANDLE hActCtx;
  8993. DWORD dwFlags;
  8994. } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION;
  8995. typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
  8996. #define ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED 1
  8997. #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)
  8998. #endif
  8999. #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX (0x00000004)
  9000. #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE (0x00000008)
  9001. #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS (0x00000010)
  9002. #define QUERY_ACTCTX_FLAG_NO_ADDREF (0x80000000)
  9003. #endif
  9004. #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)
  9005. //
  9006. // switch (ulInfoClass)
  9007. //
  9008. // case ActivationContextBasicInformation:
  9009. // pvSubInstance == NULL
  9010. // pvBuffer is of type PACTIVATION_CONTEXT_BASIC_INFORMATION
  9011. //
  9012. // case ActivationContextDetailedInformation:
  9013. // pvSubInstance == NULL
  9014. // pvBuffer is of type PACTIVATION_CONTEXT_DETAILED_INFORMATION
  9015. //
  9016. // case AssemblyDetailedInformationInActivationContext:
  9017. // pvSubInstance is of type PULONG
  9018. // *pvSubInstance < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount
  9019. // pvBuffer is of type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION
  9020. //
  9021. // case FileInformationInAssemblyOfAssemblyInActivationContext:
  9022. // pvSubInstance is of type PACTIVATION_CONTEXT_QUERY_INDEX
  9023. // pvSubInstance->ulAssemblyIndex < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount
  9024. // pvSubInstance->ulFileIndexInAssembly < ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION::ulFileCount
  9025. // pvBuffer is of type PASSEMBLY_FILE_DETAILED_INFORMATION
  9026. //
  9027. // String are placed after the structs.
  9028. //
  9029. WINBASEAPI
  9030. BOOL
  9031. WINAPI
  9032. QueryActCtxW(
  9033. IN DWORD dwFlags,
  9034. IN HANDLE hActCtx,
  9035. IN PVOID pvSubInstance,
  9036. IN ULONG ulInfoClass,
  9037. OUT PVOID pvBuffer,
  9038. IN SIZE_T cbBuffer OPTIONAL,
  9039. OUT SIZE_T *pcbWrittenOrRequired OPTIONAL
  9040. );
  9041. typedef BOOL (WINAPI * PQUERYACTCTXW_FUNC)(
  9042. IN DWORD dwFlags,
  9043. IN HANDLE hActCtx,
  9044. IN PVOID pvSubInstance,
  9045. IN ULONG ulInfoClass,
  9046. OUT PVOID pvBuffer,
  9047. IN SIZE_T cbBuffer OPTIONAL,
  9048. OUT SIZE_T *pcbWrittenOrRequired OPTIONAL
  9049. );
  9050. #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100)
  9051. WINBASEAPI
  9052. BOOL
  9053. WINAPI
  9054. ProcessIdToSessionId(
  9055. IN DWORD dwProcessId,
  9056. OUT DWORD *pSessionId
  9057. );
  9058. #if _WIN32_WINNT >= 0x0501
  9059. WINBASEAPI
  9060. DWORD
  9061. WINAPI
  9062. WTSGetActiveConsoleSessionId();
  9063. WINBASEAPI
  9064. BOOL
  9065. WINAPI
  9066. IsWow64Process(
  9067. HANDLE hProcess,
  9068. PBOOL Wow64Process
  9069. );
  9070. #endif // (_WIN32_WINNT >= 0x0501)
  9071. //
  9072. // NUMA Information routines.
  9073. //
  9074. WINBASEAPI
  9075. BOOL
  9076. WINAPI
  9077. GetNumaHighestNodeNumber(
  9078. PULONG HighestNodeNumber
  9079. );
  9080. WINBASEAPI
  9081. BOOL
  9082. WINAPI
  9083. GetNumaProcessorNode(
  9084. UCHAR Processor,
  9085. PUCHAR NodeNumber
  9086. );
  9087. WINBASEAPI
  9088. BOOL
  9089. WINAPI
  9090. GetNumaNodeProcessorMask(
  9091. UCHAR Node,
  9092. PULONGLONG ProcessorMask
  9093. );
  9094. WINBASEAPI
  9095. BOOL
  9096. WINAPI
  9097. GetNumaProcessorMap(
  9098. PSYSTEM_NUMA_INFORMATION Map,
  9099. ULONG Length,
  9100. PULONG ReturnedLength
  9101. );
  9102. WINBASEAPI
  9103. BOOL
  9104. WINAPI
  9105. GetNumaAvailableMemory(
  9106. PSYSTEM_NUMA_INFORMATION Memory,
  9107. ULONG Length,
  9108. PULONG ReturnedLength
  9109. );
  9110. WINBASEAPI
  9111. BOOL
  9112. WINAPI
  9113. GetNumaAvailableMemoryNode(
  9114. UCHAR Node,
  9115. PULONGLONG AvailableBytes
  9116. );
  9117. WINBASEAPI
  9118. ULONGLONG
  9119. WINAPI
  9120. NumaVirtualQueryNode(
  9121. IN ULONG NumberOfRanges,
  9122. IN PULONG_PTR RangeList,
  9123. OUT PULONG_PTR VirtualPageAndNode,
  9124. IN SIZE_T MaximumOutputLength
  9125. );
  9126. #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
  9127. #if ISOLATION_AWARE_ENABLED
  9128. #include "winbase.inl"
  9129. #endif /* ISOLATION_AWARE_ENABLED */
  9130. #endif /* RC */
  9131. #ifdef __cplusplus
  9132. }
  9133. #endif
  9134. #endif // _WINBASE_