|
|
//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: pstrpc.idl // // Description: // // This file describes the Protected Storage iPStoreProv interface, // which is a local-only RPC interface used to support pstore // operations. The server-side handlers for this interface live in // the lsass.exe process. // //--------------------------------------------------------------------------
import "unknwn.idl"; import "pstypes.idl";
import "basetsd.h";
midl_pragma warning(disable:2466) midl_pragma warning(disable:2467)
typedef [range(0,256)] DWORD PS_PARAM_DWORD; typedef [range(0,0x10000)] DWORD PS_DATA_DWORD;
//////////////////////////// // Interfaces
[ uuid(C9378FF1-16F7-11d0-A0B2-00AA0061426A), version(1.0), pointer_default(unique) ] interface IPStoreProv { HRESULT SSPStoreEnumProviders( [in] handle_t h, [in] PST_CALL_CONTEXT CallerContext, [out] PPST_PROVIDERINFO* ppPSTInfo, [in] DWORD dwIndex, [in] DWORD dwFlags);
HRESULT SSGetProvInfo( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [out] PPST_PROVIDERINFO* ppPSTInfo, [in] DWORD dwFlags);
// This function is currently not implemented. The output // buffer is never used. HRESULT SSGetProvParam( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] DWORD dwParam, [out] PS_PARAM_DWORD* pcbData, [out][size_is(,*pcbData)] BYTE** ppbData, [in] DWORD dwFlags);
// This function is currently only used to flush the password // cache. The input buffer is never used. HRESULT SSSetProvParam( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] DWORD dwParam, [in, range(0,256)] DWORD cbData, [in][size_is(cbData)] BYTE* pbData, [in] DWORD dwFlags);
HRESULT SSAcquireContext( [in] handle_t h, [in] PPST_PROVIDERID pProvID, [in] PST_CALL_CONTEXT CallerContext, [in] DWORD pidCaller, [out] PST_PROVIDER_HANDLE* phPSTProv, [in] DWORD_PTR lpReserved, [in] DWORD dwFlags);
HRESULT SSReleaseContext( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] DWORD dwFlags);
// interface to communicate passwords from external sources // such as credential managers HRESULT SSPasswordInterface( [in] handle_t h, [in] DWORD dwParam, [in, range(0,256)] DWORD cbData, [in][size_is(cbData)] BYTE* pbData);
// Enumeration
HRESULT SSEnumTypes( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [out] GUID* pguidType, [in] DWORD dwIndex, [in] DWORD dwFlags);
HRESULT SSEnumSubtypes( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [out] GUID* pguidSubtype, [in] DWORD dwIndex, [in] DWORD dwFlags);
HRESULT SSEnumItems( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [out] LPWSTR* ppszItemName, [in] DWORD dwIndex, [in] DWORD dwFlags);
// Type, Subtype info
HRESULT SSGetTypeInfo( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [out] PPST_TYPEINFO* ppinfoType, [in] DWORD dwFlags);
HRESULT SSGetSubtypeInfo( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [out] PPST_TYPEINFO* ppinfoSubtype, [in] DWORD dwFlags);
// Creation
HRESULT SSCreateType( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] PPST_TYPEINFO pinfoType, [in] DWORD dwFlags);
HRESULT SSCreateSubtype( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] PPST_TYPEINFO pinfoSubtype, [in] PPST_ACCESSRULESET psRules, [in] DWORD dwFlags);
// Deletion
HRESULT SSDeleteType( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] DWORD dwFlags);
HRESULT SSDeleteSubtype( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] DWORD dwFlags);
HRESULT SSDeleteItem( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] LPCWSTR szItemName, [in] PPST_PROMPTINFO psPrompt, [in] DWORD dwFlags);
// Item read/write
HRESULT SSReadItem( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] LPCWSTR szItemName, [out] PS_DATA_DWORD* pcbData, [out][size_is(,*pcbData)] BYTE** ppbData, [in] PPST_PROMPTINFO psPrompt, [in] DWORD dwFlags);
HRESULT SSWriteItem( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] LPCWSTR szItemName, [in, range(0,0x10000)] DWORD cbData, [in][size_is(cbData)] BYTE* pbData, [in] PPST_PROMPTINFO psPrompt, [in] DWORD dwDefaultConfirmationStyle, [in] DWORD dwFlags);
HRESULT SSOpenItem( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] LPCWSTR szItemName, [in] PST_ACCESSMODE ModeFlags, [in] PPST_PROMPTINFO psPrompt, [in] DWORD dwFlags);
HRESULT SSCloseItem( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] LPCWSTR szItemName, [in] DWORD dwFlags);
HRESULT SSReadAccessRuleset( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [out] PPST_ACCESSRULESET* ppsRules, [in] DWORD dwFlags);
HRESULT SSWriteAccessRuleset( [in] handle_t h, [in] PST_PROVIDER_HANDLE hPSTProv, [in] PST_CALL_CONTEXT CallerContext, [in] PST_KEY Key, [in] const GUID* pguidType, [in] const GUID* pguidSubtype, [in] PPST_ACCESSRULESET psRules, [in] DWORD dwFlags);
}
|