windows-nt/Source/XPSP1/NT/ds/security/cryptoapi/common/dpapi/pstrpc.idl
2020-09-26 16:20:57 +08:00

270 lines
9.5 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: pstrpc.idl
//
//--------------------------------------------------------------------------
import "unknwn.idl";
import "pstypes.idl";
import "basetsd.h";
////////////////////////////
// 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);
HRESULT SSGetProvParam(
[in] handle_t h,
[in] PST_PROVIDER_HANDLE hPSTProv,
[in] PST_CALL_CONTEXT CallerContext,
[in] DWORD dwParam,
[out] DWORD* pcbData,
[out][size_is(,*pcbData)]
BYTE** ppbData,
[in] DWORD dwFlags);
HRESULT SSSetProvParam(
[in] handle_t h,
[in] PST_PROVIDER_HANDLE hPSTProv,
[in] PST_CALL_CONTEXT CallerContext,
[in] DWORD dwParam,
[in] 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] 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] 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] 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);
}