123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // Copyright (c) 2000-2001 Microsoft Corporation
- //
- // Module Name:
- // ClusCfgServer.idl
- //
- // Description:
- // This file is the IDL file for the IClusCfgServer interface of the
- // Cluster Setup application.
- //
- // The IClusCfgServer interface provides the functions required to gather
- // information about storage devices, networks, the operating
- // system, etc. on a computer. It also has functions to form a cluster
- // on this computer, to add this node to a cluster, to remove this node
- // from a cluster, etc.
- //
- //////////////////////////////////////////////////////////////////////////////
- // Comments for generated files
- cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
- cpp_quote( "//" )
- cpp_quote( "// Copyright (c) 2000 Microsoft Corporation" )
- cpp_quote( "//" )
- cpp_quote( "// Remarks:" )
- cpp_quote( "// Generated file. See file ClusCfgServer.idl for more details." )
- cpp_quote( "//" )
- cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
- //////////////////////////////////////////////////////////////////////////////
- // Imported Files
- //////////////////////////////////////////////////////////////////////////////
- // For IUnknown
- import "unknwn.idl";
- ////////////////////////////////////////////////////////////////////////////
- // Forward Declarations
- //////////////////////////////////////////////////////////////////////////////
- interface IClusCfgNodeInfo;
- interface IEnumClusCfgManagedResources;
- interface IClusCfgManagedResourceInfo;
- interface IEnumClusCfgNetworks;
- interface IEnumClusCfgPartitions;
- interface IClusCfgPartitionInfo;
- interface IEnumClusCfgIPAddresses;
- interface IClusCfgIPAddressInfo;
- interface IClusCfgNetworkInfo;
- interface IClusCfgClusterInfo;
- interface IClusCfgInitialize;
- interface IClusCfgCallback;
- interface IClusCfgCredentials;
- interface IClusCfgCapabilities;
- interface IClusCfgManagedResourceCfg;
- interface IClusCfgResourcePreCreate;
- interface IClusCfgResourceCreate;
- interface IClusCfgResourcePostCreate;
- interface IClusCfgGroupCfg;
- interface IClusCfgResourceTypeInfo;
- interface IClusCfgResourceTypeCreate;
- interface IClusCfgMemberSetChangeListener;
- interface IClusCfgEvictCleanup;
- interface IClusCfgStartupListener;
- //////////////////////////////////////////////////////////////////////////////
- // Type Definitions
- //////////////////////////////////////////////////////////////////////////////
- //
- // This enumeration is used to indicate the differetnt usage
- // states of a drive letter.
- //
- typedef enum
- {
- dluUNKNOWN = 0,
- dluNO_ROOT_DIRECTORY,
- dluREMOVABLE_DISK,
- dluFIXED_DISK,
- dluNETWORK_DRIVE,
- dluCOMPACT_DISC,
- dluRAM_DISK,
- dluSYSTEM,
- dluUNUSED,
- dluMAX
- } EDriveLetterUsage;
- typedef struct _DRIVELETTERMAPPING {
- EDriveLetterUsage dluDrives[ 26 ];
- } SDriveLetterMapping;
- //
- // This enumeration is used to indicate the mode of the ClusCfgServer commit operation.
- //
- typedef enum
- {
- cmUNKNOWN = 0,
- cmCREATE_CLUSTER,
- cmADD_NODE_TO_CLUSTER,
- cmCLEANUP_NODE_AFTER_EVICT,
- cmMAX
- } ECommitMode;
- //////////////////////////////////////////////////////////////////////////////
- // Constant Definitions
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Interface Definitions
- //////////////////////////////////////////////////////////////////////////////
- //****************************************************************************
- //++
- //
- // interface IClusCfgNodeInfo
- //
- // Description:
- // This interface contains information about the node configuration.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( E4B5FA15-DD07-439e-A623-8823524E3D19 ),
- async_uuid( 4F3BB40B-DF27-40a0-B31A-BA18324CEB9D ),
- pointer_default( unique )
- ]
- interface IClusCfgNodeInfo : IUnknown
- {
- //
- // Name
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetName(
- // [ out ] BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves the node's fully qualified domain name. e.g.
- // cluster1.ntdev.microsoft.com.
- //
- // Parameter:
- // pbstrNameOut
- // Pointer to the name of the node. This should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Stores the new name for the node. This does not take effect until after
- // the changes have been commited. This is stubbed out for future
- // functionality.
- //
- // Parameter:
- // pcszNameIn
- // The new name for the node.
- //
- // Return Values:
- // E_NOTIMPL
- // The call is not implemented.
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //
- // Membership?
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsMemberOfCluster( void )
- //
- // Description:
- // Call this to determine if the node is part of a cluster.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- IsMemberOfCluster( void );
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetClusterConfigInfo(
- // [ out ] IClusCfgClusterInfo ** ppClusCfgClusterInfoOut
- // )
- //
- // Description:
- // If it is a member, use this method to obtain an interface to
- // IClusCfgClusterInfo.
- //
- // Parameter:
- // ppClusCfgClusterInfoOut
- // Pointer to the IClusCfgClusterInfo interface.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- GetClusterConfigInfo( [ out ] IClusCfgClusterInfo ** ppClusCfgClusterInfoOut );
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetOSVersion(
- // [ out ] DWORD * pdwMajorVersionOut,
- // [ out ] DWORD * pdwMinorVersionOut,
- // [ out ] WORD * pwSuiteMaskOut,
- // [ out ] BYTE * pbProductTypeOut,
- // [ out ] BSTR * pbstrCSDVersionOut
- // )
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- GetOSVersion(
- [ out ] DWORD * pdwMajorVersionOut,
- [ out ] DWORD * pdwMinorVersionOut,
- [ out ] WORD * pwSuiteMaskOut,
- [ out ] BYTE * pbProductTypeOut,
- [ out ] BSTR * pbstrCSDVersionOut
- );
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetClusterVersion(
- // [ out ] DWORD * pdwNodeHighestVersion,
- // [ out ] DWORD * pdwNodeLowestVersion
- // )
- //
- // Description:
- // Retrieves the version of the cluster.
- //
- // Parameters:
- // pdwNodeHighestVersion
- // The highest version in the cluster.
- //
- // pdwNodeLowestVersion
- // The lowest version in the cluster.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////////
- HRESULT
- GetClusterVersion(
- [ out ] DWORD * pdwNodeHighestVersion,
- [ out ] DWORD * pdwNodeLowestVersion
- );
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetDriveLetterMappings(
- // [ out ] SDriveLetterMapping dlmDriveLetterUsageOut
- // )
- //
- // Description:
- // Retrieves the drive letter mappings on the node.
- //
- // Parameter:
- // rgDriveLetterUsage
- // An array of flags representing A: thru Z: (26) drive mappings to
- // the device. See SDriveLetterMapping for flag values.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetDriveLetterMappings( [ out ] SDriveLetterMapping * pdlmDriveLetterUsageOut );
- }; //*** interface IClusCfgNodeInfo
- //****************************************************************************
- //++
- //
- // interface IEnumClusCfgManagedResources
- //
- // Description:
- // This interface enumerates all resources on this computer that the
- // cluster service can manage.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 7DBE11EB-A5DF-4534-ABF6-8BAC7B53FC95 ),
- async_uuid( B138483F-9695-4fa6-A98F-0DE2FB355449 ),
- pointer_default( unique )
- ]
- interface IEnumClusCfgManagedResources : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Next(
- // [ in ] ULONG cNumberRequestedIn,
- // [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgManagedResourceInfo ** rgpManagedResourceInfoOut,
- // [ out ] ULONG * pcNumberFetchedOut
- // );
- //
- // Description:
- // Retrieves the next cNumberRequestedIn items in the enumeration sequence.
- // If there are fewer than the requested number of elements left in the
- // sequence, it retrieves the remaining elements. The number of elements
- // actually retrieved is returned through pcNumberFetchedOut (unless the
- // caller passed in NULL for that parameter).
- //
- // Parameters:
- // cNumberRequestedIn
- // number of elements being requested.
- //
- // rgpManagedResourceInfoOut
- // Array of size cNumberRequestedIn (or larger) of the elements of interest.
- // The type of this parameter depends on the item being enumerated.
- //
- // pcNumberFetchedOut
- // Pointer to the number of elements actually supplied in
- // rgpManagedResourceInfoOut. Caller can pass in NULL if cNumberRequestedIn
- // is one.
- //
- // Return Values:
- // S_OK
- // The number of elements supplied is cNumberRequestedIn
- //
- // S_FALSE
- // The number of elements supplied is not cNumberRequestedIn
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Next(
- [ in ] ULONG cNumberRequestedIn,
- [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgManagedResourceInfo ** rgpManagedResourceInfoOut,
- [ out ] ULONG * pcNumberFetchedOut
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Reset( void );
- //
- // Description:
- // Reset the enumeration sequence to the beginning.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Reset( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Skip(
- // [ in ] ULONG cNumberToSkip
- // );
- //
- // Description:
- // Skips over the next specified number of elements in the enumeration sequence.
- //
- // Parameter:
- // cNumberToSkip
- // The number of elements to be skipped.
- //
- // Return Value:
- // S_OK
- // The number of elements skipped is cNumberToSkip.
- //
- // S_FALSE
- // Success, but you're past the last element.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Skip( [ in ] ULONG cNumberToSkip );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Clone(
- // [ out ] IEnumClusCfgManagedResources ** ppEnumManagedResources
- // );
- //
- // Description:
- // Creates another enumerator that contains the same enumeration state
- // as the current one. Using this function, a client can record a
- // particular point in the enumeration sequence, and then return to
- // that point at a later time. The new enumerator supports the same
- // interface as the original one.
- //
- // Return Values:
- // E_INVALIDARG
- // ppEnumManagedResources is invalid.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // E_UNEXPECTED
- // Unknown error (it's in the EnumXXXX docs).
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Clone( [ out ] IEnumClusCfgManagedResources ** ppEnumManagedResourcesOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Count(
- // [ out, ref ] DWORD * pnCountOut
- // );
- //
- // Description:
- // Returns the size (possibly zero) of the enumerator's collection.
- //
- // Return Values:
- // E_POINTER
- // pnCountOut was null.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Count( [ out, ref ] DWORD * pnCountOut );
- }; //*** interface IEnumClusCfgManagedResources
- //****************************************************************************
- //++
- //
- // interface IEnumClusCfgNetworks
- //
- // Description:
- // This interface enumerates the networks on this computer.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( CF3FAED8-1322-4bcb-9923-B5B745A69E36 ),
- async_uuid( F56B9B0D-E7B8-49ec-A843-5475076B947D ),
- pointer_default( unique )
- ]
- interface IEnumClusCfgNetworks : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Next(
- // [ in ] ULONG cNumberRequestedIn,
- // [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgNetworkInfo ** rgpNetworkInfoOut,
- // [ out ] ULONG * pcNumberFetchedOut
- // );
- //
- // Description:
- // Retrieves the next cNumberRequestedIn items in the enumeration sequence.
- // If there are fewer than the requested number of elements left in the
- // sequence, it retrieves the remaining elements. The number of elements
- // actually retrieved is returned through pcNumberFetchedOut (unless the
- // caller passed in NULL for that parameter).
- //
- // Parameters:
- // cNumberRequestedIn
- // number of elements being requested.
- //
- // rgpNetworkInfoOut
- // Array of size cNumberRequestedIn (or larger) of the elements of interest.
- // The type of this parameter depends on the item being enumerated.
- //
- // pcNumberFetchedOut
- // Pointer to the number of elements actually supplied in
- // rgpNetworkInfoOut. Caller can pass in NULL if cNumberRequestedIn
- // is one.
- //
- // Return Values:
- // S_OK
- // The number of elements supplied is cNumberRequestedIn
- //
- // S_FALSE
- // The number of elements supplied is not cNumberRequestedIn.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Next(
- [ in ] ULONG cNumberRequestedIn,
- [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgNetworkInfo ** rgpNetworkInfoOut,
- [ out ] ULONG * pcNumberFetchedOut
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Skip(
- // [ in ] ULONG cNumberToSkip
- // );
- //
- // Description:
- // Skips over the next specified number of elements in the enumeration sequence.
- //
- // Parameter:
- // cNumberToSkip
- // The number of elements to be skipped.
- //
- // Return Value:
- // S_OK
- // The number of elements skipped is cNumberToSkip.
- //
- // S_FALSE
- // Success, but you've past the last element.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Skip( [ in ] ULONG cNumberToSkipIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Reset( void );
- //
- // Description:
- // Reset the enumeration sequence to the beginning.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Reset( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Clone(
- // [ out ] IEnumClusCfgNetworks ** ppEnumNetworksOut
- // );
- //
- // Description:
- // Creates another enumerator that contains the same enumeration state
- // as the current one. Using this function, a client can record a
- // particular point in the enumeration sequence, and then return to
- // that point at a later time. The new enumerator supports the same
- // interface as the original one.
- //
- // Parameter:
- // ppEnumNetworksOut
- // Address of IEnumClusCfgManagedResources * pointer variable that receives
- // the interface pointer to the enumeration object. If the method is
- // unsuccessful, the value of this output variable is undefined.
- //
- // Return Values:
- // E_INVALIDARG
- // ppEnumNetworksOut is invalid.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // E_UNEXPECTED
- // Unknown error (it's in the EnumXXXX docs).
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Clone( [ out ] IEnumClusCfgNetworks ** ppEnumNetworksOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Count(
- // [ out, ref ] DWORD * pnCountOut
- // );
- //
- // Description:
- // Returns the size (possibly zero) of the enumerator's collection.
- //
- // Return Values:
- // E_POINTER
- // pnCountOut was null.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Count( [ out, ref ] DWORD * pnCountOut );
- }; //*** interface IEnumClusCfgNetworks
- //****************************************************************************
- //++
- //
- // interface IClusCfgManagedResourceInfo
- //
- // Description:
- // This interface encapsulates a manageable resource on this computer.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( E0324847-1520-41b0-B960-54198DA5F8AF ),
- async_uuid( 73616028-1243-4749-AD84-0B5EB358FFA0 ),
- pointer_default( unique )
- ]
- interface IClusCfgManagedResourceInfo : IUnknown
- {
- //
- // UID
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetUID(
- // [ out ] BSTR * pbstrUIDOut
- // )
- //
- // Description:
- // Retrieve the Unique IDentifier for this device. This is not a Universally
- // Unique IDentifier (UUID or GUID). This indentifer should match identifiers
- // that can be generated on other nodes that can see this device from a shared
- // bus (such as a SCSI device).
- //
- // Parameters:
- // pbstrUIDOut
- // Pointer to the UID string. pbstrUIDOut should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetUID( [ out ] BSTR * pbstrUIDOut );
- //
- // Name
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetName(
- // [ out ] BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves a "user friendly" name of the device.
- //
- // Parameter:
- // pbstrNameOut
- // Pointer to device name. This should be freed by the caller by calling
- // SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Stores a new name for the device to be set when the cluster
- // configuration is commited.
- //
- // Parameter:
- // pcszNameIn
- // The name of the user wants to assigned the device.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //
- // Managed by cluster?
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsManaged( void )
- //
- // Description:
- // Call this to determine if the device is/will be managed by the cluster.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsManaged( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetManaged(
- // [ in ] BOOL fIsManagedIn
- // )
- //
- // Description:
- // Setting this flag will cause the device to be configured as being managed
- // by the cluster.
- //
- // Parameter:
- // fIsManagedIn
- // If TRUE, the device will be marked as being managed by the cluster.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetManaged( [ in ] BOOL fIsManagedIn );
- //
- // Quorum Device?
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsQuorumDevice( void )
- //
- // Description:
- // Call this to determine if the device is/will be set as the quorum
- // device.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsQuorumDevice( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetQuorumedDevice(
- // [ in ] BOOL fIsQuorumDeviceIn
- // )
- //
- // Description:
- // Setting this flag will cause the device to be configured as the
- // quorum device in the cluster.
- //
- // Parameter:
- // fIsQuorumDeviceIn
- // If TRUE, the device will be marked to be the quorum device.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_UNEXPECTED
- // You tried to set a device to be the quorum when the device is not
- // capable of being a quorum device.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetQuorumedDevice( [ in ] BOOL fIsQuorumDeviceIn );
- //
- // Quorum Capable?
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsQuorumCapable( void )
- //
- // Description:
- // Call this to determine if the device is capable be set as the quorum
- // device.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsQuorumCapable( void );
- //
- // Drive Letter Mapping
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetDriveLetterMappings(
- // [ out ] SDriveLetterMapping dlmDriveLetterMappingsOut
- // )
- //
- // Description:
- // Retrieves the drive mappings for the device (if any).
- //
- // Parameter:
- // rgDriveLetterMappings
- // An array of flags representing A: thru Z: (26) drive mappings to
- // the device. See SDriveLetterMapping for flag values.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetDriveLetterMappings( [ out ] SDriveLetterMapping * pdlmDriveLetterMappingOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetDriveLetterMappings(
- // [ in ] SDriveLetterMapping dlmDriveLetterMappingIn
- // )
- //
- // Description:
- // Stores the drive mappings for the device. The change will not take
- // effect until the configuration has been committed.
- //
- // Parameter:
- // rgDriveLetterMappings
- // An array of flags representing A: thru Z: (26) drive mappings to
- // the device. See EDriveLetterUsage for flag values.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDriveLetterMappings( [ in ] SDriveLetterMapping dlmDriveLetterMappingIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsDeviceJoinable( void )
- //
- // Description:
- // Call this to determine if the quorum capable device allows other nodes
- // to join.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsDeviceJoinable( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetDeviceJoinable(
- // [ in ] BOOL fJoinableIn
- // )
- //
- // Description:
- // Call this to set the joinable flag.
- //
- // Return Values:
- // S_OK
- // Call succeeded
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDeviceJoinable( [ in ] BOOL fJoinableIn );
- }; //*** interface IClusCfgManagedResourceInfo
- //****************************************************************************
- //++
- //
- // interface IEnumClusCfgPartitions
- //
- // Description:
- // This interface enumerates the partitions on a storage device that the
- // cluster service can manage.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 4440BB6A-B0AC-479d-B534-7265A31D6C55 ),
- async_uuid( 4440BB6A-B0AC-479d-B534-7265A31D6C56 ),
- pointer_default( unique )
- ]
- interface IEnumClusCfgPartitions : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Next(
- // [ in ] ULONG cNumberRequestedIn,
- // [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgPartitionInfo ** rgpPartitionInfoOut,
- // [ out ] ULONG * pcNumberFetchedOut
- // );
- //
- // Description:
- // Retrieves the next cNumberRequestedIn items in the enumeration sequence.
- // If there are fewer than the requested number of elements left in the
- // sequence, it retrieves the remaining elements. The number of elements
- // actually retrieved is returned through pcNumberFetchedOut (unless the
- // caller passed in NULL for that parameter).
- //
- // Parameters:
- // cNumberRequestedIn
- // number of elements being requested.
- //
- // rgpPartitionInfoOut
- // Array of size cNumberRequestedIn (or larger) of the elements of interest.
- // The type of this parameter depends on the item being enumerated.
- //
- // pcNumberFetchedOut
- // Pointer to the number of elements actually supplied in
- // rgpPartitionInfoOut. Caller can pass in NULL if cNumberRequestedIn
- // is one.
- //
- // Return Values:
- // S_OK
- // The number of elements supplied is cNumberRequestedIn
- //
- // S_FALSE
- // The number of elements supplied is not cNumberRequestedIn
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Next(
- [ in ] ULONG cNumberRequestedIn,
- [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgPartitionInfo ** rgpPartitionInfoOut,
- [ out ] ULONG * pcNumberFetchedOut
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Reset( void );
- //
- // Description:
- // Reset the enumeration sequence to the beginning.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Reset( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Skip(
- // [ in ] ULONG cNumberToSkip
- // );
- //
- // Description:
- // Skips over the next specified number of elements in the enumeration sequence.
- //
- // Parameter:
- // cNumberToSkip
- // The number of elements to be skipped.
- //
- // Return Value:
- // S_OK
- // The number of elements skipped is cNumberToSkip.
- //
- // S_FALSE
- // Success, but you've past the last element.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Skip( [ in ] ULONG cNumberToSkip );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Clone(
- // [ out ] IEnumClusCfgPartitions ** ppEnumPartitions
- // );
- //
- // Description:
- // Creates another enumerator that contains the same enumeration state
- // as the current one. Using this function, a client can record a
- // particular point in the enumeration sequence, and then return to
- // that point at a later time. The new enumerator supports the same
- // interface as the original one.
- //
- // Return Values:
- // E_INVALIDARG
- // ppEnumPartitions is invalid.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // E_UNEXPECTED
- // Unknown error (it's in the EnumXXXX docs).
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Clone( [ out ] IEnumClusCfgPartitions ** ppEnumPartitions );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Count(
- // [ out, ref ] DWORD * pnCountOut
- // );
- //
- // Description:
- // Returns the size (possibly zero) of the enumerator's collection.
- //
- // Return Values:
- // E_POINTER
- // pnCountOut was null.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Count( [ out, ref ] DWORD * pnCountOut );
- }; //*** interface IEnumClusCfgPartitions
- //****************************************************************************
- //++
- //
- // interface IClusCfgPartitionInfo
- //
- // Description:
- // This interface provides the partition info.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( EC1EBD9F-5866-4846-8952-EC36C3961EEE ),
- async_uuid( EC1EBD9F-5866-4846-8952-EC36C3961EEF ),
- pointer_default( unique )
- ]
- interface IClusCfgPartitionInfo : IUnknown
- {
- //
- // UID
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetUID(
- // [ out ] BSTR * pbstrUIDOut
- // )
- //
- // Description:
- // Retrieve the "Unique IDentifier" for this partition. This is not a Universally
- // Unique IDentifier (UUID or GUID). This indentifer should match identifiers
- // that can be generated on other nodes, but must be unique for the partition
- // the interface (NIC) is on.
- //
- // Parameters:
- // pbstrUIDOut
- // Pointer to the UID string. pbstrUIDOut should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetUID( [ out ] BSTR * pbstrUIDOut );
- //
- // Name
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetName(
- // [ out ] BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves a "user friendly" name of the interface.
- //
- // Parameter:
- // pbstrNameOut
- // Pointer to partition interface name. This should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Stores a new name of the partition interface to be set when the cluster
- // configuration is commited.
- //
- // Parameter:
- // pcszNameIn
- // The name of the user wants to assigned the interface.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //
- // Description
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetDescription(
- // [ out ] BSTR * pbstrDescriptionOut
- // )
- //
- // Description:
- // Retrieves the description string for a partition interface.
- //
- // Parameter:
- // pbstrDescription
- // Pointer to the description of the partition. This should be freed
- // by the caller by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetDescription( [ out ] BSTR * pbstrDescriptionOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetDescription(
- // [ in ] LPCWSTR pcszDescriptionIn
- // )
- //
- // Description:
- // Stores a new name of the partition interface to be set when the cluster
- // configuration is commited.
- //
- // Parameter:
- // pcszDescriptionIn
- // The description the user wants to assign to the interface.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDescription(
- [ in, pointer_default( unique ) ] LPCWSTR pcszDescriptionIn
- );
- //
- // Drive Letter Mapping
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetDriveLetterMappings(
- // [ out ] SDriveLetterMapping dlmDriveLetterUsageOut
- // )
- //
- // Description:
- // Retrieves the drive letter mappings of the partition.
- //
- // Parameter:
- // rgDriveLetterUsage
- // An array of flags representing A: thru Z: (26) drive mappings to
- // the device. See SDriveLetterMapping for flag values.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetDriveLetterMappings( [ out ] SDriveLetterMapping * pdlmDriveLetterUsageOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetDriveLetterMappings(
- // [ in ] SDriveLetterMapping dlmDriveLetterMappingIn
- // )
- //
- // Description:
- // Stores the drive mappings for the device. The change will not take
- // effect until the configuration has been committed.
- //
- // Parameter:
- // rgDriveLetterMappings
- // An array of flags representing A: thru Z: (26) drive mappings to
- // the device. See EDriveLetterUsage for flag values.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDriveLetterMappings( [ in ] SDriveLetterMapping dlmDriveLetterMappingIn );
- //
- // Partition Size
- //
- //////////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetSize(
- // [ out ] ULONG * pcMegaBytes
- // )
- //
- // Description:
- // Retrieves the size of the partition in Megabytes.
- //
- // Parameter:
- // pcMegaBytes
- // Retrieves the partition size.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetSize( [ out ] ULONG * pcMegaBytes );
- }; //*** interface IClusCfgPartitionInfo
- //****************************************************************************
- //++
- //
- // interface IEnumClusCfgIPAddresses
- //
- // Description:
- // This interface enumerates the IP addresses on this adapter.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( BD5F35BA-0BC0-455f-926D-C3D356419486 ),
- async_uuid( BD5F35BA-0BC0-455f-926D-C3D356419487 ),
- pointer_default( unique )
- ]
- interface IEnumClusCfgIPAddresses : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Next(
- // [ in ] ULONG cNumberRequestedIn,
- // [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgIPAddressInfo ** rgpIPAddressInfoOut,
- // [ out ] ULONG * pcNumberFetchedOut
- // );
- //
- // Description:
- // Retrieves the next cNumberRequestedIn items in the enumeration sequence.
- // If there are fewer than the requested number of elements left in the
- // sequence, it retrieves the remaining elements. The number of elements
- // actually retrieved is returned through pcNumberFetchedOut (unless the
- // caller passed in NULL for that parameter).
- //
- // Parameters:
- // cNumberRequestedIn
- // number of elements being requested.
- //
- // rgpIPAddressInfoOut
- // Array of size cNumberRequestedIn (or larger) of the elements of interest.
- // The type of this parameter depends on the item being enumerated.
- //
- // pcNumberFetchedOut
- // Pointer to the number of elements actually supplied in
- // rgpIPAddressInfoOut. Caller can pass in NULL if cNumberRequestedIn
- // is one.
- //
- // Return Values:
- // S_OK
- // The number of elements supplied is cNumberRequestedIn
- //
- // S_FALSE
- // The number of elements supplied is not cNumberRequestedIn.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Next(
- [ in ] ULONG cNumberRequestedIn,
- [ out, size_is( cNumberRequestedIn ), length_is(*pcNumberFetchedOut) ] IClusCfgIPAddressInfo ** rgpIPAddressInfoOut,
- [ out ] ULONG * pcNumberFetchedOut
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Skip(
- // [ in ] ULONG cNumberToSkip
- // );
- //
- // Description:
- // Skips over the next specified number of elements in the enumeration sequence.
- //
- // Parameter:
- // cNumberToSkip
- // The number of elements to be skipped.
- //
- // Return Value:
- // S_OK
- // The number of elements skipped is cNumberToSkip.
- //
- // S_FALSE
- // Success, but you've past the last element.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Skip( [ in ] ULONG cNumberToSkipIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Reset( void );
- //
- // Description:
- // Reset the enumeration sequence to the beginning.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Reset( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Clone(
- // [ out ] IEnumClusCfgIPAddresses ** ppEnumIPAddressesOut
- // );
- //
- // Description:
- // Creates another enumerator that contains the same enumeration state
- // as the current one. Using this function, a client can record a
- // particular point in the enumeration sequence, and then return to
- // that point at a later time. The new enumerator supports the same
- // interface as the original one.
- //
- // Parameter:
- // ppEnumIPAddressesOut
- // Address of IEnumClusCfgManagedResources * pointer variable that receives
- // the interface pointer to the enumeration object. If the method is
- // unsuccessful, the value of this output variable is undefined.
- //
- // Return Values:
- // E_INVALIDARG
- // ppEnumIPAddressesOut is invalid.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // E_UNEXPECTED
- // Unknown error (it's in the EnumXXXX docs).
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Clone( [ out ] IEnumClusCfgIPAddresses ** ppEnumIPAddressesOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Count(
- // [ out, ref ] DWORD * pnCountOut
- // );
- //
- // Description:
- // Returns the size (possibly zero) of the enumerator's collection.
- //
- // Return Values:
- // E_POINTER
- // pnCountOut was null.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Count( [ out, ref ] DWORD * pnCountOut );
- }; //*** interface IEnumClusCfgIPAddresses
- //****************************************************************************
- //++
- //
- // interface IClusCfgIPAddressInfo
- //
- // Description:
- // This interface encapsulates the info about an IP address.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( AAEAF0A5-E310-4604-A55E-2F9DDC4157A8 ),
- async_uuid( AAEAF0A5-E310-4604-A55E-2F9DDC4157A9 ),
- pointer_default( unique )
- ]
- interface IClusCfgIPAddressInfo : IUnknown
- {
- //
- // UID
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetUID(
- // [ out ] BSTR * pbstrUIDOut
- // )
- //
- // Description:
- // Retrieve the "Unique IDentifier" for this IP address. This is not a Universally
- // Unique IDentifier (UUID or GUID). This indentifer should match identifiers
- // that can be generated on other nodes, but must be unique for the network
- // the interface (NIC) is on.
- //
- // Parameters:
- // pbstrUIDOut
- // Pointer to the UID string. pbstrUIDOut should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetUID( [ out ] BSTR * pbstrUIDOut );
- //
- // IP Address
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetIPAddress(
- // [ out ] ULONG * pulDottedQuadOut
- // )
- //
- // Description:
- // Retrieves an IP Address for the network inteface.
- //
- // Paramater:
- // pulDottedQuadOut
- // The IP address of the interface in dotted quad format.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetIPAddress( [ out ] ULONG * pulDottedQuadOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetIPAddress(
- // [ in ] ULONG ulDottedQuadIn
- // )
- //
- // Description:
- // Stores an IP Address of the network interface to be set when the cluster
- // configuration is committed.
- //
- // Parameter:
- // ulDottedQuadIn
- // The IP address of the interface to be stored in dotted quad format.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetIPAddress( [ in ] ULONG ulDottedQuadIn );
- //
- // Subnet Mask
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetSubnetMask(
- // [ out ] ULONG * pulDottedQuadOut
- // )
- //
- // Description:
- // Retrieves a subnet mask for the network interface.
- //
- // Parameter:
- // ulDottedQuadOut
- // The subnet mask of the interface in dotted quad format.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetSubnetMask( [ out ] ULONG * pulDottedQuadOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetSubnetMask(
- // [ in ] ULONG ulDottedQuadIn
- // )
- //
- // Description:
- // Stores a subnet mask for the network interface to be set when the cluster
- // configuration is committed.
- //
- // Parameter:
- // ulDottedQuadIn
- // The subnet mask of the interface to be stored in dotted quad format.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetSubnetMask( [ in ] ULONG ulDottedQuadIn );
- }; //*** interface IClusCfgIPAddressInfo
- //****************************************************************************
- //++
- //
- // interface IClusCfgNetworkInfo
- //
- // Description:
- // This interface enumerates the networks on this computer.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 19FC7580-950A-44a6-966E-74B14B20918F ),
- async_uuid( ED71FD2D-AD02-4dfc-B376-5FFA5F5A7C2C ),
- pointer_default( unique )
- ]
- interface IClusCfgNetworkInfo : IUnknown
- {
- //
- // UID
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetUID(
- // [ out ] BSTR * pbstrUIDOut
- // )
- //
- // Description:
- // Retrieve the "Unique IDentifier" for this network. This is not a Universally
- // Unique IDentifier (UUID or GUID). This indentifer should match identifiers
- // that can be generated on other nodes, but must be unique for the network
- // the interface (NIC) is on.
- //
- // Parameters:
- // pbstrUIDOut
- // Pointer to the UID string. pbstrUIDOut should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetUID( [ out ] BSTR * pbstrUIDOut );
- //
- // Name
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetName(
- // [ out ] BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves a "user friendly" name of the interface.
- //
- // Parameter:
- // pbstrNameOut
- // Pointer to network interface name. This should be freed by the caller
- // by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Stores a new name of the network interface to be set when the cluster
- // configuration is commited.
- //
- // Parameter:
- // pcszNameIn
- // The name of the user wants to assigned the interface.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //
- // Description
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetDescription(
- // [ out ] BSTR * pbstrDescriptionOut
- // )
- //
- // Description:
- // Retrieves the description string for a network interface.
- //
- // Parameter:
- // pbstrDescription
- // Pointer to the description of the network. This should be freed
- // by the caller by calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetDescription( [ out ] BSTR * pbstrDescriptionOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetDescription(
- // [ in ] LPCWSTR pcszDescriptionIn
- // )
- //
- // Description:
- // Stores a new name of the network interface to be set when the cluster
- // configuration is commited.
- //
- // Parameter:
- // pcszDescriptionIn
- // The description the user wants to assign to the interface.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDescription(
- [ in, pointer_default( unique ) ] LPCWSTR pcszDescriptionIn
- );
- //
- // Network Address
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetPrimaryNetworkAddress(
- // [ out ] IClusCfgIPAddressInfo ** ppIPAddressOut
- // )
- //
- // Description:
- // Get the primary network address.
- //
- // Parameter:
- // ppIPAddressOut
- // Pointer to the IClusCfgIPAddressInfo interface.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetPrimaryNetworkAddress( [ out ] IClusCfgIPAddressInfo ** ppIPAddressOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetPrimaryNetworkAddress(
- // [ in ] IClusCfgIPAddressInfo * pIPAddressIn
- // )
- //
- // Description:
- // Set the primary network address.
- //
- // Parameter:
- // pIPAddressIn
- // Pointer to the IClusCfgIPAddressInfo interface.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPrimaryNetworkAddress( [ in ] IClusCfgIPAddressInfo * pIPAddressIn );
- //
- // Public?
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsPublic( void )
- //
- // Description:
- // Call this to determine if the network has been configured to be a
- // public network. Note that an interface can be both public and private.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- //
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsPublic( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetPublic(
- // [ in ] BOOL fIsPublicIn
- // )
- //
- // Description:
- // Sets the "public property" of a network interface. The change will not
- // take effect until the configuration has been committed.
- //
- // Parameter:
- // fIsPublicIn
- // If TRUE, the interface will be marked to be a public interface.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPublic( [ in ] BOOL fIsPublicIn );
- //
- // Private?
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IsPrivate( void )
- //
- // Description:
- // Call this to determine if the network has been configured to be a
- // private network. Note that an interface can be both public and private.
- //
- // Return Values:
- // S_OK
- // Call succeeded and the result is "TRUE."
- // S_FALSE
- // Call succeeded and the result is "FALSE."
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- IsPrivate( void );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetPrivate(
- // [ in ] BOOL fIsPrivateIn
- // )
- //
- // Description:
- // Sets the "private property" of a network interface. The change will not
- // take effect until the configuration has been committed.
- //
- // Parameter:
- // fIsPrivateIn
- // Value to set the flag to. If TRUE the interface will be marked as
- // a private interface. If FALSE the interface will be marked as NOT
- // a private interface.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPrivate( [ in ] BOOL fIsPrivateIn );
- }; //*** interface IClusCfgNetworkInfo
- //****************************************************************************
- //++
- //
- // interface IClusCfgClusterInfo
- //
- // Description:
- // This interface contains information about the cluster configuration.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 85B4BBC0-DDC4-4ae7-8268-F4850BB2A6EE ),
- async_uuid( 8BDBA247-04F5-4114-837E-B263412A4B64 ),
- pointer_default( unique )
- ]
- interface IClusCfgClusterInfo : IUnknown
- {
- //
- // CommitChanges Mode
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetCommitMode(
- // [ in ] ECommitMode ecmNewModeIn
- // )
- //
- // Description:
- // Sets the CommitChanges processing to be the new mode that
- /// is passed in.
- //
- // Parameter:
- // eccbNewModeIn
- // The new mode to set the CommitChanges processing to.
- //
- // Return Values:
- // S_OK
- // Call succeed.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetCommitMode( [ in ] ECommitMode ecmNewModeIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetCommitMode(
- // [ out ] ECommitMode * pecmCurrentModeOut
- // )
- //
- // Description:
- // Call this to determine the operation that will be done when
- // CommitChanges is invoked.
- //
- // Parameter:
- // pecmCurrentModeOut
- // The current mode for CommitChanges processing.
- //
- // Return Values:
- // S_OK
- // Call succeeded.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetCommitMode( [ out ] ECommitMode * pecmCurrentModeOut );
- //
- // Cluster Name
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetName(
- // [ out ] BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves the name of the cluster to be formed or joined.
- //
- // Notes:
- // Name (Fully Qualified Domiain Name) e.g. cluster1.ntdev.microsoft.com
- //
- // In Forming the cluster, this is the resulting cluster name.
- // In Joining the cluster, this is the sponsers cluster name.
- //
- // Parameter:
- // pbstrNameOut
- // Pointer to device name. This should be freed by the caller by calling
- // SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Stores a new name for the cluster to be set when the cluster
- // configuration is commited. If the node is joining, then this will
- /// will be the cluster to be joined.
- //
- // Notes:
- // Name (Fully Qualified Domiain Name) e.g. cluster1.ntdev.microsoft.com
- //
- // In Forming the cluster, this is the resulting cluster name.
- // In Joining the cluster, this is the sponsers cluster name.
- //
- // Parameter:
- // pcszNameIn
- // The name of the user wants to assigned the device.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //
- // Cluster IP Address
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetIPAddress(
- // [ out ] ULONG * pulDottedQuadOut
- // )
- //
- // Description:
- // Retrieves the IP address of the cluster.
- //
- // Parameter:
- // pulDottedQuadOut
- // The IP address of the cluster in dotted quad format.
- //
- // Return Value:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetIPAddress( [ out ] ULONG * pulDottedQuadOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetIPAddress(
- // [ in ] ULONG ulDottedQuadIn
- // )
- //
- // Description:
- // Stores the IP address to be used to form the cluster. If joining,
- // this is the IP address of the sponsor.
- //
- // Parameter:
- // ulDottedQuadIn
- // IP address in dotted quad format.
- //
- // Return Value:
- // S_OK
- // The call succeeded.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetIPAddress( [ in ] ULONG ulDottedQuadIn );
- //
- // Cluster Subnet Mask
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetSubnetMask(
- // [ out ] ULONG * pulDottedQuadOut
- // )
- //
- // Description:
- // Retrieves the subnet mask to be used for the cluster.
- //
- // Parameter:
- // pulDottedQuadOut
- // Subnet mask of the cluster in dotted quad format.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetSubnetMask( [ out ] ULONG * pulDottedQuadOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetSubnetMask(
- // [ in ] ULONG ulDottedQuadIn
- // )
- //
- // Description:
- // Stores the subnet mask to be used to form the cluster. If joining,
- // this is the subnet mask of the sponsor.
- //
- // Parameter:
- // ulDottedQuadIn
- // Subnet mask in dotted quad format.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetSubnetMask( [ in ] ULONG ulDottedQuadIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetNetworkInfo(
- // [ out ] IClusCfgNetworkInfo ** ppiccniOut
- // )
- //
- // Description:
- // Retrieves the network to be used for the cluster IP address
- // and name.
- //
- // Parameter:
- // ppiccniOut
- // Pointer of the network to use for the cluster IP address
- // and name.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetNetworkInfo( [ out ] IClusCfgNetworkInfo ** ppiccniOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetNetworkInfo(
- // [ in ] IClusCfgNetworkInfo * piccniIn
- // )
- //
- // Description:
- // Stores the network to be used for the cluster IP address and name.
- //
- // Parameter:
- // piccniIn
- // Pointer to the network to use for the cluster IP address
- // and name.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetNetworkInfo( [ in ] IClusCfgNetworkInfo * piccniIn );
- //
- // Cluster Service Account
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetClusterServiceAccountCredentials(
- // [ out ] IClusCfgCredentials ** ppicccCredentialsOut
- // )
- //
- // Description:
- // Retrieves the cluster service account credentials used by the
- // cluster for authenication. The password is not available from the
- // sponsor node and must be supplied by the user. Once supplied, it can
- // be retrieved by calling this method.
- //
- // Parameters:
- // ppicccCredentialsOut
- // An IClusCfgCredentials * that contains the cluster
- // service account credentials.
- //
- // Return Values:
- // S_OK
- // The called succeeded.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetClusterServiceAccountCredentials(
- [ out ] IClusCfgCredentials ** ppicccCredentialsOut
- );
- //
- // Cluster Binding String
- //
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetBindingString(
- // [ out ] BSTR * pbstrBindingStringOut
- // )
- //
- // Description:
- // Retrieves the binding string (IP address) of the cluster to be
- // formed or joined.
- //
- // Notes:
- //
- // Parameter:
- // pbstrBindingStringOut
- // Pointer to a BSTR. This should be freed by the caller by
- // calling SysFreeString( ).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetBindingString( [ out ] BSTR * pbstrBindingStringOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetBindingString(
- // [ in ] LPCWSTR pcszBindingStringIn
- // )
- //
- // Description:
- // Stores the binding string for the cluster.
- //
- // Notes:
- //
- // Parameter:
- // pcszBindingStringIn
- // The binding string to use when connecting to this cluster.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULT
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetBindingString(
- [ in, pointer_default( unique ) ] LPCWSTR pcszBindingStringIn
- );
- }; //*** interface IClusCfgClusterInfo
- //****************************************************************************
- //++
- //
- // interface IClusCfgInitialize
- //
- // Description:
- // This interface is used to initialize a configuration object.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 2A0EB82D-F878-492a-951E-AE000918C4A6 ),
- async_uuid( 2A0EB82E-F878-492a-951E-AE000918C4A6 ),
- pointer_default( unique )
- ]
- interface IClusCfgInitialize : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // Initialize(
- // [ in ] IUnknown * punkCallbackIn,
- // [ in ] LCID lcidIn
- // )
- //
- // Description:
- // Register callbacks, locale id, etc.
- //
- // Parameters:
- // punkCallbackIn
- // The callback interface.
- //
- // lcidIn
- // The locale ID to be used for strings that are passed.
- //
- // Return Values:
- // S_OK
- // The initialization succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Initialize(
- [ in ] IUnknown * punkCallbackIn,
- [ in ] LCID lcidIn
- );
- }; //*** interface IClusCfgInitialize
- //****************************************************************************
- //++
- //
- // interface IClusCfgCallback
- //
- // Description:
- // This interface is used to callback to the client to indicate
- // status or progess (or both) about a task being completed on the
- // server.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 238DCA63-E2EF-4f32-A24D-ACBF975BE842 ),
- async_uuid( EBCE8945-AC69-4b3a-865D-E2D4EB33E41B ),
- pointer_default( unique )
- ]
- interface IClusCfgCallback : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SendStatusReport(
- // [ in ] LPCWSTR pcszNodeNameIn,
- // [ in ] CLSID clsidTaskMajorIn
- // [ in ] CLSID clsidTaskMinorIn,
- // [ in ] ULONG ulMinIn,
- // [ in ] ULONG ulMaxIn,
- // [ in ] ULONG ulCurrentIn,
- // [ in ] HRESULT hrStatusIn,
- // [ in ] LPCWSTR pcszDescriptionIn,
- // [ in ] FILETIME * pftTimeIn,
- // [ in ] LPCWSTR pcszReferenceIn
- // )
- //
- // Description:
- // Send a status report back to the user interface/script.
- //
- // Parameters:
- // pcszNodeNameIn
- // The name of the node (server) that sent the report.
- //
- // clsidTaskMajorIn
- // CLSID of the major task item to give status about. For the
- // wizard, this indicates which node in the tree view control
- // to publish this status message under. If clsidTaskMajorIn
- // equals TASKID_Major_Client_Log, TASKID_Major_Server_Log, or
- // TASKID_Major_Client_And_Server_Log, only a log entry will be
- // made.
- //
- // clsidTaskMinorIn
- // CLSID of the minor task to give status about. These should be
- // unique to each sub-task and message.
- //
- // ulMinIn
- // The min value of progress.
- //
- // ulMaxIn
- // The max value of progress.
- //
- // ulCurrentIn
- // The current value of progress.
- //
- // hrStatusIn
- // The current status.
- //
- // pcszDescriptionIn
- // The description of the status. Can be NULL to indicate that nothing
- // needs to be passed.
- //
- // pftTimeIn
- // UTC time of when this event was generated.
- //
- // pcszReference
- // Optional reference data, additional context, URL, etc. that
- // might better help explain the problem is this is an error
- // report.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SendStatusReport(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNodeNameIn,
- [ in ] CLSID clsidTaskMajorIn,
- [ in ] CLSID clsidTaskMinorIn,
- [ in ] ULONG ulMinIn,
- [ in ] ULONG ulMaxIn,
- [ in ] ULONG ulCurrentIn,
- [ in ] HRESULT hrStatusIn,
- [ in, pointer_default( unique ) ] LPCWSTR pcszDescriptionIn,
- [ in ] FILETIME * pftTimeIn,
- [ in, pointer_default( unique ) ] LPCWSTR pcszReferenceIn
- );
- }; //*** interface IClusCfgCallback
- //****************************************************************************
- //++
- //
- // interface IClusCfgCredentials
- //
- // Description:
- // The IClusCfgCredentials interface provides the functions
- // for getting and setting user credentials.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 54AA9406-A409-4b49-B314-5F0A0CE4C88E ),
- async_uuid( 54AA9406-A409-4b49-B314-5F0A0CE4C88F ),
- pointer_default( unique )
- ]
- interface IClusCfgCredentials : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // SetCredentials(
- // [ in ] LPCWSTR pcszUserIn,
- // [ in ] LPCWSTR pcszDomainIn,
- // [ in ] LPCWSTR pcszPasswordIn
- // )
- //
- // Description:
- // Set the credentials.
- //
- // Parameters:
- // pcszUserIn
- // The user name.
- //
- // pcszDomainIn
- // The domain name.
- //
- // pcszPasswordIn
- // The user's password.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetCredentials(
- [ in, pointer_default( unique ) ] LPCWSTR pcszUserIn
- , [ in, pointer_default( unique ) ] LPCWSTR pcszDomainIn
- , [ in, pointer_default( unique ) ] LPCWSTR pcszPasswordIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // GetCredentials(
- // [ out ] BSTR * pbstrUserOut,
- // [ out ] BTSR * pbstrDomainOut,
- // [ out ] BTSR * pbstrPasswordOut
- // )
- //
- // Description:
- // Get the credentials.
- //
- // Parameters:
- // pbstrUserOut
- // Catches the user name.
- //
- // pbstrDomainOut
- // Catches the domain name.
- //
- // pbstrPasswordOut
- // Catches the user's password.
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetCredentials(
- [ out ] BSTR * pbstrUserOut
- , [ out ] BSTR * pbstrDomainOut
- , [ out ] BSTR * pbstrPasswordOut
- );
- }; //*** interface IClusCfgCredentials
- //****************************************************************************
- //++
- //
- // interface IClusCfgCapabilities
- //
- // Description:
- // The IClusCfgCapabilities interface provides the functions
- // for determining the capabilities of a node.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( D94AB253-36C7-41c1-B52E-26B451975C8D ),
- pointer_default( unique )
- ]
- interface IClusCfgCapabilities : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // CanNodeBeClustered( void )
- //
- // Description:
- // Determines if a node can be clustered.
- //
- // Parameters:
- // None.
- //
- // Return Values:
- // S_OK
- // The call succeeded. The node can be clustered.
- //
- // S_FALSE
- // The call succeeded. The node can not be clustered.
- //
- // E_NOTIMPL
- // The call failed. This is treated as a "don't care."
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- CanNodeBeClustered( void );
- }; //*** interface IClusCfgCapabilities
- //****************************************************************************
- //++
- //
- // interface IClusCfgManagedResourceCfg
- //
- // Description:
- // TODO: gpease 06-JUN-2000
- // Write a description.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 60300A0F-77E1-440c-BD94-6BFB0DBFDB3A ),
- local,
- pointer_default( unique )
- ]
- interface IClusCfgManagedResourceCfg : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgManagedResourceCfg::PreCreate(
- // IUnknown * punkServicesIn
- // )
- //
- // Description:
- // This method is called by the post configuration manager to
- // determine the requirements of the resource. Querying the
- // punkServicesIn allows the managed resource to use services
- // provided by the manager.
- //
- // Arguments:
- // punkServicesIn
- // The resource should QI this interface for services provided
- // by the post configuration manager and to set its dependencies.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- PreCreate( [ in ] IUnknown * punkServicesIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgManagedResourceCfg::Create(
- // IUnknown * punkServicesIn
- // )
- //
- // Description:
- // This method is called by the post configuration manager to
- // have the resource create an instance of itself. Querying the
- // punkServicesIn allows the managed resource to use services
- // provided by the manager.
- //
- // Arguments:
- // punkServicesIn
- // The resource should QI this interface for services provided
- // by the post configuration manager and to create itself.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Create( [ in ] IUnknown * punkServicesIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgManagedResourceCfg::PostCreate(
- // IUnknown * punkServicesIn
- // )
- //
- // Description:
- // This method is called by the post configuration manager to allow
- // resources to perform any post-creation configuration that may be
- // needed. At this point the cluster is fully configured. Querying
- // the punkServicesIn allows the managed resource to use services
- // provided by the manager.
- //
- // Arguments:
- // punkServicesIn
- // The resource should QI this interface for services provided
- // by the post configuration manager.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- PostCreate( [ in ] IUnknown * punkServicesIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgManagedResourceCfg::Evict(
- // IUnknown * punkServicesIn
- // )
- //
- // Description:
- // This method is called by the post configuration manager to alert
- // the resource that this node was evicted from the cluster. The
- // resource should do whatever cleanup it needs to do revert to a
- // non-clustered state. Querying the punkServicesIn allows the
- // managed resource to uses services provided by the post
- // configuration manager.
- //
- // Arguments:
- // punkServicesIn
- // The resource should QI this interface for services provided
- // by the post configuration manager.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed. Errors are ignored and do not prevent a node
- // from being evicted.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Evict( [ in ] IUnknown * punkServicesIn );
- }; //*** interface IClusCfgManagedResourceCfg
- //****************************************************************************
- //++
- //
- // interface IClusCfgResourcePreCreate
- //
- // Description:
- // TODO: gpease 06-JUN-2000
- // Write a description.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 4240F6A1-9D49-427e-8F3D-09384E1F59E4 ),
- local,
- pointer_default( unique )
- ]
- interface IClusCfgResourcePreCreate : IUnknown
- {
- typedef
- [
- uuid( 1DAF9692-6662-43b1-AD45-D50F7849B0CD ),
- helpstring("Resource dependency flags")
- ]
- enum EDependencyFlags {
- [helpstring("Unknown access")] dfUNKNOWN = 0,
- [helpstring("Shared access resource")] dfSHARED = 1,
- [helpstring("Exclusive access resource")] dfEXCLUSIVE = 2,
- } EDependencyFlags;
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourcePreCreate::SetDependency(
- // LPCLSID pclsidDepResTypeIn,
- // EDependencyFlags dflagIn
- // )
- //
- // Description:
- // Informs the post configuration manager that a resource has a
- // dependency on another type of resource and if the resource needs
- // the resource for shared access or exclusive access.
- //
- // Arguments:
- // pclsidDepResTypeIn
- // The CLSID of the type of resource that a resource is
- // requesting a dependency on. These are documented in the SDK
- // or by the 3rd party resource.
- //
- // dfIn
- // Flags to modify the dependency relationship. The following
- // are defined flags:
- //
- // dfSHARED - the dependent resource can be shared.
- // dfEXCLUSIVE - the dependent resource can not be shared.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetDependency(
- [ in ] LPCLSID pclsidDepResTypeIn
- , [ in ] DWORD dfIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourcePreCreate::GetType(
- // CLSID * pclsidIn
- // )
- //
- // Description:
- // A managed resource MUST call this to indicate its resource type.
- // Failure to call this during PreCreate will result in your
- // resource not being created.
- //
- // Arguments:
- // pclsidIn
- // Pointer to the GUID of the resource type.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetType( [ in ] CLSID * pclsidIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourcePreCreate::SetClassType(
- // CLSID * pclsidIn
- // )
- //
- // Description:
- // A managed resource sets this to indicate that its resource type
- // can be considered to be of a class of resource. You may call this
- // multiple times to indicate all the classes you belong to.
- //
- // Arguments:
- // pclsidIn
- // Pointer to the GUID of the resource class type.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetClassType( [ in ] CLSID * pclsidIn );
- }; //*** interface IClusCfgResourcePreCreate
- //****************************************************************************
- //++
- //
- // interface IClusCfgResourceCreate
- //
- // Description:
- // TODO: gpease 06-JUN-2000
- // Write a description.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 0647B41A-C777-443c-9432-02CCCF4FF443 ),
- local,
- pointer_default( unique )
- ]
- interface IClusCfgResourceCreate : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyBinary(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const DWORD cbSizeIn
- // , [ in ] const BYTE * pbyteIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyBinary(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const DWORD cbSizeIn
- , [ in ] const BYTE * pbyteIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyDWORD(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const DWORD dwDWORDIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyDWORD(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const DWORD dwDWORDIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyString(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] LPCWSTR pcszStringIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyString(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in, pointer_default( unique ) ] LPCWSTR pcszStringIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyExpandString(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] LPCWSTR pcszStringIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyExpandString(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in, pointer_default( unique ) ] LPCWSTR pcszStringIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyMultiString(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const DWORD cbMultiStringIn
- // , [ in ] LPCWSTR pcszMultiStringIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyMultiString(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const DWORD cbMultiStringIn
- , [ in, pointer_default( unique ) ] LPCWSTR pcszMultiStringIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyUnsignedLargeInt(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const ULARGE_INTEGER ulIntIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyUnsignedLargeInt(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const ULARGE_INTEGER ulIntIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyLong(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const LONG lLongIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyLong(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const LONG lLongIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertySecurityDescriptor(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const SECURITY_DESCRIPTOR * pcsdIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertySecurityDescriptor(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const SECURITY_DESCRIPTOR * pcsdIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SetPropertyLargeInt(
- // [ in ] LPCWSTR pcszNameIn
- // , [ in ] const LARGE_INTEGER lIntIn
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetPropertyLargeInt(
- [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
- , [ in ] const LARGE_INTEGER lIntIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SendResourceControl(
- // [ in ] DWORD dwControlCode
- // , [ in ] LPVOID lpInBuffer
- // , [ in ] DWORD cbInBufferSize
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SendResourceControl(
- [ in ] DWORD dwControlCodeIn
- , [ in ] LPVOID lpBufferIn
- , [ in ] DWORD cbBufferSizeIn
- );
- }; //*** interface IClusCfgResourceCreate
- //****************************************************************************
- //++
- //
- // interface IClusCfgResourcePostCreate
- //
- // Description:
- // TODO: gpease 06-JUN-2000
- // Write a description.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 72A9BF54-13B6-451f-910D-6913EBF025AB ),
- local,
- pointer_default( unique )
- ]
- interface IClusCfgResourcePostCreate : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourcePostCreate::ChangeName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Changes the name of the resource.
- //
- // Arguments:
- // pcszNameIn
- // The name to assign the group.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- ChangeName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceCreate::SendResourceControl(
- // [ in ] DWORD dwControlCode
- // , [ in ] LPVOID lpInBuffer
- // , [ in ] DWORD cbInBufferSize
- // , [ in ] LPVOID lpOutBuffer
- // , [ in ] DWORD cbOutBufferSize
- // , [ out ] LPDWORD lpcbBytesReturned
- // )
- //
- // Description:
- //
- // Arguments:
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SendResourceControl(
- [ in ] DWORD dwControlCodeIn
- , [ in ] LPVOID lpBufferIn
- , [ in ] DWORD cbBufferSizeIn
- , [ in ] LPVOID lBufferInout
- , [ in ] DWORD cbOutBufferSizeIn
- , [ out ] LPDWORD lpcbBytesReturnedOut
- );
- }; //*** interface IClusCfgResourcePostCreate
- //****************************************************************************
- //++
- //
- // interface IClusCfgGroupCfg
- //
- // Description:
- // TODO: gpease 06-JUN-2000
- // Write a description.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( DCB6D3D2-A55F-49e5-A64A-0CCFEB01ED3A ),
- local,
- pointer_default( unique )
- ]
- interface IClusCfgGroupCfg : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgGroupCfg::SetName(
- // [ in ] LPCWSTR pcszNameIn
- // )
- //
- // Description:
- // Changes the name of the group in which the resource was created.
- // Note that the last resource to set the name wins. The ordering
- // of the last resource is the resource that doesn't have anything
- // depending on it.
- //
- // Arguments:
- // pcszNameIn
- // The name to assign the group.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SetName( [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgGroupCfg::GetName(
- // BSTR * pbstrNameOut
- // )
- //
- // Description:
- // Retrieves the name of the group in which the resource was created.
- // Note that the last resource to set the name wins. The ordering
- // of the last resource is the resource that doesn't have anything
- // depending on it. Do not cache this value as the name may change
- // after control has been returned to the manager.
- //
- // Arguments:
- // pbstrNameOut
- // The name to assign the group.
- //
- // Return Value:
- // S_OK
- // Success.
- //
- // HRESULT_FROM_WIN32( ERROR_MORE_DATA )
- // The buffer size specified is too small.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetName( [ out ] BSTR * pbstrNameOut );
- }; //*** interface IClusCfgGroupCfg
- //****************************************************************************
- //++
- //
- // interface IClusCfgMemberSetChangeListener
- //
- // Description:
- // This interface is implemented by an component that wishes to be notified
- // of when the local computer becomes part of a cluster or when it leaves
- // a cluster - in other words, when the member set of a cluster changes
- // as a result of a cluster configuration operation on the local computer.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 2B64534F-2643-4ABC-A4E5-824D881B7582 ),
- async_uuid( 2B645350-2643-4ABC-A4E5-824D881B7582 ),
- pointer_default( unique )
- ]
- interface IClusCfgMemberSetChangeListener : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgMemberSetChangeListener::Notify(
- // [ in ] IUnknown * punkClusterInfoIn
- // )
- //
- // Description:
- // This method is called to notify a component that this computer has
- // either joined or left a cluster. During this call, a component typically
- // performs operations that are required to switch it from the "clustered"
- // to "non-clustered" mode or vice versa. For example, an application
- // that implements this interface could use this function to create
- // its resource type when the local computer joins a cluster.
- //
- // If the node has just become part of a cluster, the cluster
- // service is guaranteed to be running when this method is called.
- // Querying the punkClusterInfoIn allows the listener to get more
- // information about the event that caused the listener to be notified.
- //
- // Arguments:
- // punkClusterInfoIn
- // The resource should QI this interface for services provided
- // by the caller of this function. Typically, the component that
- // this punk refers to also implements the IClusCfgClusterInfo
- // interface.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Notify( [ in ] IUnknown * punkClusterInfoIn );
- }; //*** interface IClusCfgMemberSetChangeListener
- //****************************************************************************
- //++
- //
- // interface IClusCfgResourceTypeInfo
- //
- // Description:
- // This interface is implemented by components that wish to configure
- // ( create, delete, etc. ) resource types during cluster configuration
- // ( cluster formation, node addition, node eviction, etc. ).
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( C649A281-C847-4F5C-9841-D2F73B5AA71D ),
- async_uuid( C649A282-C847-4F5C-9841-D2F73B5AA71D ),
- pointer_default( unique )
- ]
- interface IClusCfgResourceTypeInfo : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceTypeInfo::CommitChanges(
- // [ in ] IUnknown * punkClusterInfoIn
- // )
- //
- // Description:
- // A component that wishes to participate in the configuration of
- // cluster resource types should perform the configuration steps
- // necessary for its resource type in this method.
- //
- // This method is called by the cluster configuration server when
- // the local computer becomes part of a cluster. The cluster service
- // is guaranteed to be running at this stage. This method is also
- // called when the local computer is evicted from a cluster - the
- // cluster service will not be running if this is the case.
- //
- // Typically, a component will create a resource type in this method
- // during cluster formation and join and will perform any cleanup
- // required during node evict.
- //
- // Arguments:
- // punkClusterInfoIn
- // The resource type should QI this interface for services provided
- // by the caller of this function. Typically, the component that
- // this punk refers to also implements the IClusCfgClusterInfo
- // interface.
- //
- // punkResTypeServicesIn
- // Pointer to the IUnknown interface of a component that provides
- // methods that help configuring a resource type. For example,
- // during a join or a form, this punk can be queried for the
- // IClusCfgResourceTypeCreate interface, which provides methods
- // for resource type creation.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- CommitChanges(
- [ in ] IUnknown * punkClusterInfoIn,
- [ in ] IUnknown * punkResTypeServicesIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceTypeInfo::GetTypeName(
- // [ out ] BSTR * pbstrTypeNameOut
- // )
- //
- // Description:
- // Get the resource type name of this resource type.
- //
- // Arguments:
- // pbstrTypeNameOut
- // Pointer to the BSTR that holds the name of the resource type.
- // This BSTR has to be freed by the caller using the function
- // SysFreeString().
- //
- // Return Values:
- // S_OK
- // The call succeeded.
- //
- // E_OUTOFMEMORY
- // Out of memory.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetTypeName( [ out ] BSTR * pbstrTypeNameOut );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceTypeInfo::GetTypeGUID(
- // [ out ] GUID * pguidGUIDOut
- // )
- //
- // Description:
- // Get the globally unique identifier of this resource type.
- //
- // Arguments:
- // pguidGUIDOut
- // Pointer to the GUID object which will receive the GUID of this
- // resource type.
- //
- // Return Values:
- // S_OK
- // The call succeeded and the *pguidGUIDOut contains the type GUID.
- //
- // S_FALSE
- // The call succeeded but this resource type does not have a GUID.
- // The value of *pguidGUIDOut is undefined after this call.
- //
- // other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- GetTypeGUID( [ out ] GUID * pguidGUIDOut );
- }; //*** interface IClusCfgResourceTypeInfo
- //****************************************************************************
- //++
- //
- // interface IClusCfgResourceTypeCreate
- //
- // Description:
- // This interface provides functions that help create a resource type
- // during cluster configuration. A pointer to this interface is provided
- // to components that participate in resource type configuration during
- // cluster configuration.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 3AFCE3B8-5F3E-4DDF-A8F4-4B4FCBF28F8F ),
- async_uuid( 3AFCE3B9-5F3E-4DDF-A8F4-4B4FCBF28F8F ),
- pointer_default( unique )
- ]
- interface IClusCfgResourceTypeCreate : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceTypeCreate::Create(
- // [in, string ] const WCHAR * pcszResTypeNameIn,
- // [in, string ] const WCHAR * pcszResTypeDisplayNameIn,
- // [in, string ] const WCHAR * pcszResDllNameIn,
- // [in] DWORD dwLooksAliveIntervalIn,
- // [in] DWORD dwIsAliveIntervalIn
- // )
- //
- // Description:
- // This method creates a cluster resource type.
- //
- // Arguments:
- // pcszResTypeNameIn
- // Name of the resource type
- //
- // pcszResTypeDisplayNameIn
- // Display name of the resource type
- //
- // pcszResDllNameIn
- // Name (with or without path information) of DLL of the resource type.
- //
- // dwLooksAliveIntervalIn
- // Looks-alive interval for the resource type (in milliseconds).
- //
- // dwIsAliveIntervalIn
- // Is-alive interval for the resource type (in milliseconds).
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Create(
- [in, string ] const WCHAR * pcszResTypeNameIn,
- [in, string ] const WCHAR * pcszResTypeDisplayNameIn,
- [in, string ] const WCHAR * pcszResDllNameIn,
- [in] DWORD dwLooksAliveIntervalIn,
- [in] DWORD dwIsAliveIntervalIn
- );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgResourceTypeCreate::RegisterAdminExtensions(
- // [in, string ] const WCHAR * pcszResDllNameIn,
- // [in] ULONG cExtClsidCountIn,
- // [in, size_is( cExtClsidCountIn ) ] const CLSID * rgclsidExtClsidsIn
- // )
- //
- // Description:
- // This method registers the cluster administrator extensions for
- // a resource type.
- //
- // Arguments:
- // pcszResTypeNameIn
- // Name of the resource type against for the extensions are to be
- // registered.
- //
- // cExtClsidCountIn
- // Number of extension class ids in the next parameter.
- //
- // rgclsidExtClsidsIn
- // Pointer to an array of class ids of cluster administrator extensions.
- // This can be NULL if cExtClsidCountIn is 0.
- //
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // other HRESULTs.
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- RegisterAdminExtensions(
- [in, string ] const WCHAR * pcszResTypeNameIn,
- [in] ULONG cExtClsidCountIn,
- [in, size_is( cExtClsidCountIn ) ] const CLSID * rgclsidExtClsidsIn
- );
- }; //*** interface IClusCfgResourceTypeCreate
- //****************************************************************************
- //++
- //
- // interface IClusCfgEvictCleanup
- //
- // Description:
- // This interface can be used to cleanup a node that has been evicted from
- // a cluster.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( 6FE3E361-D373-4C5F-A0AF-1DFE8493C655 ),
- async_uuid( 6FE3E362-D373-4C5F-A0AF-1DFE8493C655 ),
- pointer_default( unique )
- ]
- interface
- IClusCfgEvictCleanup : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgEvictCleanup::CleanupLocal( [ in ] DWORD dwDelayIn )
- //
- // Description:
- // This method performs the clean up actions on the local node after
- // it has been evicted from a cluster, so that the node can go back
- // to its "pre-clustered" state.
- //
- // Arguments:
- // DWORD dwDelayIn
- // Number of milliseconds that this method will wait before starting
- // cleanup. If some other process cleans up this node while this thread
- // is waiting, the wait is terminated. If this value is zero, this method
- // will attempt to clean up this node immediately.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // Other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- CleanupLocalNode( [ in ] DWORD dwDelayIn );
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgEvictCleanup::CleanupRemoteNode(
- // const WCHAR * pcszEvicteeNodeNameIn
- // , DWORD dwDelayIn
- // )
- //
- // Description:
- // This method performs the clean up actions on a remote node after
- // it has been evicted from a cluster, so that the node can go back
- // to its "pre-clustered" state.
- //
- // Arguments:
- // const WCHAR * pcszEvictedNodeNameIn
- // Name of the node that has just been evicted. This can be the
- // NetBios name of the node, the fully qualified domain name or
- // the node IP address.
- //
- // DWORD dwDelayIn
- // Number of milliseconds that this method will wait before starting
- // cleanup. If some other process cleans up this node while this thread
- // is waiting, the wait is terminated. If this value is zero, this method
- // will attempt to clean up this node immediately.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // Other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- CleanupRemoteNode(
- [ in, string ] const WCHAR * pcszEvictedNodeNameIn
- , [ in ] DWORD dwDelayIn
- );
- }; // interface IClusCfgEvictCleanup
- //****************************************************************************
- //++
- //
- // interface IClusCfgStartupListener
- //
- // Description:
- // This interface is implemented by a component that wishes to be notified
- // when the cluster service has started.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( D282CAEF-2EDE-4ab9-A5D5-F7BDE3D23F0F ),
- async_uuid( D282CAF0-2EDE-4ab9-A5D5-F7BDE3D23F10 ),
- pointer_default( unique )
- ]
- interface
- IClusCfgStartupListener : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgStartupListener::Notify( [ in ] IUnknown * punkIn )
- //
- // Description:
- // This method is called to inform a component that the cluster service
- // has started on the local node.
- //
- // Arguments:
- // IUnknown * punkIn
- // The component that implements this Punk may also provide services
- // that are useful to the implementor of this method. For example,
- // this component usually implements the IClusCfgResourceTypeCreate
- // interface.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // Other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- Notify( [ in ] IUnknown * punkIn );
- }; // interface IClusCfgStartupListener
- //****************************************************************************
- //++
- //
- // interface IClusCfgStartupNotify
- //
- // Description:
- // This interface is implemented by a component that the cluster service
- // instantiates. When the cluster service calls the only method on this
- // interface, this component will enumerate the startup listeners and
- // inform them that the cluster service has started on the local node.
- //
- //--
- //****************************************************************************
- [
- object,
- uuid( C2B0D069-6353-4EE1-B253-6B0D75DB2CD3 ),
- async_uuid( C2B0D06A-6353-4EE1-B253-6B0D75DB2CD3 ),
- pointer_default( unique )
- ]
- interface
- IClusCfgStartupNotify : IUnknown
- {
- //////////////////////////////////////////////////////////////////////////
- //
- // STDMETHOD
- // IClusCfgStartupNotify::SendNotifications( [ in ] IUnknown * punkIn )
- //
- // Description:
- // This method is called by the Cluster Service to inform the implementor
- // of this interface to send out notification of cluster service startup
- // to interested listeners. If this method is being called for the first
- // time, the method waits till the post configuration steps are complete
- // before sending out the notifications.
- //
- // Arguments:
- // None.
- //
- // Return Values:
- // S_OK
- // Success.
- //
- // Other HRESULTs
- // The call failed.
- //
- //////////////////////////////////////////////////////////////////////////
- HRESULT
- SendNotifications( void );
- }; // interface IClusCfgStartupNotify
|