|
|
cpp_quote("/*******************************************************************************/" ) cpp_quote("/* */" ) cpp_quote("/* Copyright � Microsoft Corporation. All rights reserved. */" ) cpp_quote("/* */" ) /* REPOSIT.IDL */ /* */ cpp_quote("/*******************************************************************************/" )
import "..\wmiutils.idl";
[uuid(2af77340-dd7b-11d2-9217-00aa001f98b5)]
library WmiRepository_v0 { importlib("stdole32.tlb");
interface IWmiDbSession;
typedef BYTE *PNTSECURITY_DESCRIPTOR;
typedef enum { WMIDB_HANDLE_TYPE_INVALID = 0,
// Lock level WMIDB_HANDLE_TYPE_COOKIE = 0x1, WMIDB_HANDLE_TYPE_VERSIONED = 0x2, WMIDB_HANDLE_TYPE_PROTECTED = 0x3, WMIDB_HANDLE_TYPE_EXCLUSIVE = 0x4,
// Cache levels WMIDB_HANDLE_TYPE_NO_CACHE = 0x100, WMIDB_HANDLE_TYPE_WEAK_CACHE = 0x200, WMIDB_HANDLE_TYPE_STRONG_CACHE = 0x300,
// Special behavior WMIDB_HANDLE_TYPE_PERSISTENT = 0x1000, WMIDB_HANDLE_TYPE_AUTODELETE = 0x2000,
// Open Context WMIDB_HANDLE_TYPE_SCOPE = 0x10000, WMIDB_HANDLE_TYPE_CONTAINER = 0x20000,
WMIDB_HANDLE_TYPE_SUBSCOPED = 0x80000000
} WMIDB_HANDLE_TYPE;
typedef enum { // Batch operation flags
WMIDB_FLAG_BEST_EFFORT = 0x1, WMIDB_FLAG_ATOMIC = 0x2, WMIDB_FLAG_LOOKAHEAD = 0x10
} WMIDB_BATCH_FLAGS;
typedef enum { // Statistics flags
WMIDB_FLAG_TOTAL_HANDLES = 0x1, WMIDB_FLAG_CACHE_SATURATION = 0x2, WMIDB_FLAG_CACHE_HIT_RATE = 0x3
} WMIDB_STATISTICS_FLAGS;
typedef enum { // Logon flags
WMIDB_FLAG_ADMIN_VERIFIED = 0x10, WMIDB_FLAG_NO_INIT = 0x20
} WMIDB_LOGON_FLAGS;
typedef enum { // Security flags
WMIDB_FLAG_SECURITY_LOCAL_ONLY = 0x1, WMIDB_FLAG_SECURITY_PROPOGATED = 0x2
} WMIDB_SECURITY_FLAGS;
typedef enum { // Query flags
WMIDB_FLAG_QUERY_SHALLOW = 0x0, WMIDB_FLAG_QUERY_DEEP = 0x1
} WMIDB_QUERY_FLAGS;
typedef enum { WMIDB_ENABLE_EVENTS = 0x0, WMIDB_DISABLE_EVENTS = 0x1000
} WMIDB_EVENT_PUT_DELETE_FLAGS;
typedef enum { // shutdown flags WMIDB_SHUTDOWN_NET_STOP = 0x0, WMIDB_SHUTDOWN_MACHINE_DOWN = 0x1 } WMIDB_SHUTDOWN_FLAGS;
//*************************************************************************** // //***************************************************************************
[object, local, uuid(0bc53e37-dd83-11d2-9217-00aa001f98b5)]
interface IWmiDbHandle : IUnknown { HRESULT GetHandleType([out] DWORD *pdwType); };
//*************************************************************************** // // Logon template definitions // //***************************************************************************
typedef struct { DWORD dwId; DWORD dwFlags; BSTR strParmDisplayName; VARIANT Value; } WMIDB_LOGON_PARAMETER;
typedef struct { DWORD dwArraySize; [size_is(dwArraySize)] WMIDB_LOGON_PARAMETER *pParm; } WMIDB_LOGON_TEMPLATE;
//*************************************************************************** // //***************************************************************************
[object, local, uuid(2af77343-dd7b-11d2-9217-00aa001f98b5)]
interface IWmiDbController : IUnknown { HRESULT Logon( [in] WMIDB_LOGON_TEMPLATE *pLogonParms, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbSession **ppSession, [out] IWmiDbHandle **ppRootNamespace );
HRESULT GetLogonTemplate( [in] LCID lLocale, [in] DWORD dwFlags, [out] WMIDB_LOGON_TEMPLATE **ppLogonTemplate );
HRESULT FreeLogonTemplate( [in, out] WMIDB_LOGON_TEMPLATE **ppTemplate );
HRESULT Shutdown( [in] DWORD dwFlags );
HRESULT SetCallTimeout( [in] DWORD dwMaxTimeout );
HRESULT SetCacheValue( [in] DWORD dwMaxBytes );
HRESULT FlushCache( [in] DWORD dwFlags );
HRESULT GetStatistics( [in] DWORD dwParameter, [out] DWORD *pdwValue );
HRESULT Backup( [in] LPCWSTR szBackupFile, [in] long lFlags );
HRESULT Restore( [in] LPCWSTR szBackupFile, [in] long lFlags );
HRESULT LockRepository();
HRESULT UnlockRepository();
HRESULT GetRepositoryVersions( [out] DWORD *pdwOldVersion, [out] DWORD *pdwCurrentVersion ); };
//*************************************************************************** // //***************************************************************************
[object, local, uuid(2380c7e0-e14b-11d2-9220-00aa001f98b5)]
interface IWmiDbIterator : IUnknown { HRESULT Cancel ( [in] DWORD dwFlags, [in] void* pFiber);
HRESULT NextBatch( [in] DWORD dwNumRequested, [in] DWORD dwTimeOutSeconds, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [in] REFIID riid, [in] void* pFiber, [out] DWORD *pdwNumReturned, [out, size_is(dwNumRequested), length_is(*pdwNumReturned), iid_is(riid)] LPVOID *ppObjects ); };
//*************************************************************************** // //***************************************************************************
[object, local, uuid(2af77345-dd7b-11d2-9217-00aa001f98b5)]
interface IWmiDbSession : IUnknown { HRESULT GetObject( [in] IWmiDbHandle *pScope, [in] IWbemPath *pPath, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbHandle **ppResult );
HRESULT GetObjectDirect( [in] IWmiDbHandle *pScope, [in] IWbemPath *pPath, [in] DWORD dwFlags, [in] REFIID riid, [out, iid_is(riid)] LPVOID *pObj );
HRESULT PutObject( [in] IWmiDbHandle *pScope, [in] REFIID riid, [in, iid_is(riid)] LPVOID pObj, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbHandle **ppResult );
HRESULT DeleteObject( [in] IWmiDbHandle *pScope, [in] DWORD dwFlags, [in] REFIID riid, [in, iid_is(riid)] LPVOID pObj );
HRESULT ExecQuery( [in] IWmiDbHandle *pScope, [in] IWbemQuery *pQuery, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] DWORD *dwMessageFlags, [out] IWmiDbIterator **ppQueryResult );
HRESULT RenameObject( [in] IWbemPath *pOldPath, [in] IWbemPath *pNewPath, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbHandle **ppResult );
HRESULT Enumerate( [in] IWmiDbHandle *pScope, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbIterator **ppQueryResult );
HRESULT AddObject( [in] IWmiDbHandle *pScope, [in] IWbemPath *pPath, [in] DWORD dwFlags, [in] DWORD dwRequestedHandleType, [out] IWmiDbHandle **ppResult );
HRESULT RemoveObject ( [in] IWmiDbHandle *pScope, [in] IWbemPath *pPath, [in] DWORD dwFlags );
HRESULT SetDecoration( [in] LPWSTR lpMachineName, [in] LPWSTR lpNamespacePath );
HRESULT SupportsQueries( [in] DWORD *dwQuerySupportLevel ); };
[object, local, uuid(4b3cca15-0e03-44cb-9b7a-822f9faf6ec0)] interface IWmiDbSessionEx : IWmiDbSession { HRESULT GetObjectByPath( [in] IWmiDbHandle *pScope, [in, string] LPCWSTR wszPath, [in] DWORD dwFlags, [in] REFIID riid, [out, iid_is(riid)] LPVOID *pObj );
HRESULT DeleteObjectByPath( [in] IWmiDbHandle *pScope, [in, string] LPCWSTR wszPath, [in] DWORD dwFlags );
HRESULT BeginWriteTransaction([in] DWORD dwFlags); HRESULT BeginReadTransaction([in] DWORD dwFlags); HRESULT CommitTransaction([in] DWORD dwFlags); HRESULT AbortTransaction([in] DWORD dwFlags); };
}; // End of lib
|