You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
288 lines
10 KiB
288 lines
10 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// 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);
|
|
|
|
}
|