444 lines
11 KiB
Plaintext
444 lines
11 KiB
Plaintext
|
|
//***************************************************************************
|
|
//
|
|
// (c) 1999 by Microsoft Corp. All Rights Reserved.
|
|
//
|
|
// REPOSIT.IDL
|
|
//
|
|
// raymcc 18-Mar-99 Created as prototype for Quasar.
|
|
// raymcc 23-Mar-99 Misc. corrections; added IWmiDbIterator
|
|
// cvadai 31-Mar-99 Added Cancel and timeout to IWmiDbIterator
|
|
// cvadai 02-Apr-99 Modified IWmiDbBatchSession parameters.
|
|
// cvadai 06-Apr-99 Changed Logon out parameter to IWmiDbSession.
|
|
// raymcc 06-May-99 New handle type for duplication
|
|
// cvadai 13-May-99 New flags for logon, security.
|
|
// cvadai 29-Jul-99 Removed SetNamespacePath, added Logon param.
|
|
//
|
|
//***************************************************************************
|
|
|
|
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;
|
|
|
|
//***************************************************************************
|
|
//
|
|
//***************************************************************************
|
|
|
|
|
|
[uuid(89B9BAF8-6A06-11d3-A5FE-00105A0A3102)]
|
|
coclass WmiRepository_SQL
|
|
{
|
|
interface IWmiDbController;
|
|
};
|
|
|
|
[uuid(89B9BAFC-6A06-11d3-A5FE-00105A0A3102)]
|
|
coclass WmiRepository_Jet
|
|
{
|
|
interface IWmiDbController;
|
|
};
|
|
|
|
[object, 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, 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, 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, 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, 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);
|
|
};
|
|
|
|
// Dummy interface to work around MIDL not stripping all the interface
|
|
// attributes for IWmiDbSession (MIDL 6.00.0328)
|
|
|
|
[object, uuid(15e6e24f-7432-4da9-9bd4-c33db0df06c0)]
|
|
interface I15e6e24f74324da99bd4c33db0df06c0 : IUnknown
|
|
{
|
|
HRESULT foo();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
//***************************************************************************
|
|
|
|
typedef struct
|
|
{
|
|
HRESULT hRes;
|
|
DWORD dwFlags;
|
|
IWbemPath *pPath;
|
|
IUnknown *pHandle;
|
|
IWmiDbHandle *pReturnHandle;
|
|
} WMI_BATCH_OBJECT_ACCESS;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwArraySize;
|
|
[size_is(dwArraySize)] WMI_BATCH_OBJECT_ACCESS *pElements;
|
|
} WMIOBJECT_BATCH;
|
|
|
|
//***************************************************************************
|
|
//
|
|
//***************************************************************************
|
|
|
|
[object, uuid(0bc53e39-dd83-11d2-9217-00aa001f98b5)]
|
|
|
|
interface IWmiDbBatchSession : IUnknown
|
|
{
|
|
HRESULT GetObjects(
|
|
[in] IWmiDbHandle *pScope,
|
|
[in] DWORD dwFlags,
|
|
[in] DWORD dwRequestedHandleType,
|
|
[in, out] WMIOBJECT_BATCH *pBatch
|
|
);
|
|
|
|
HRESULT PutObjects(
|
|
[in] IWmiDbHandle *pScope,
|
|
[in] DWORD dwFlags,
|
|
[in] DWORD dwRequestedHandleType,
|
|
[in, out] WMIOBJECT_BATCH *pBatch
|
|
);
|
|
|
|
HRESULT DeleteObjects(
|
|
[in] IWmiDbHandle *pScope,
|
|
[in] DWORD dwFlags,
|
|
[in] WMIOBJECT_BATCH *pBatch
|
|
);
|
|
};
|
|
|
|
[object, uuid(843180D9-8489-42d7-BB07-3A5D91818E2E)]
|
|
|
|
interface IWmiDbBackupRestore : IUnknown
|
|
{
|
|
HRESULT Backup (
|
|
[in] LPCWSTR lpBackupPath,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
HRESULT Restore (
|
|
[in] LPCWSTR lpRestorePath,
|
|
[in] LPCWSTR lpDestination,
|
|
[in] DWORD dwFlags
|
|
);
|
|
};
|
|
|
|
|
|
}; // End of lib
|
|
|