//+------------------------------------------------------------------------- // // 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); }