windows-nt/Source/XPSP1/NT/ds/security/base/lsa/idl/efsrpc.idl

127 lines
2.6 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
//
// efsrpc.idl
//
[
uuid(c681d488-d850-11d0-8c52-00c04fd90f7e),
version(1.0),
]
interface efsrpc
{
import "efsimp.idl" ;
#define MAX_SID_SIZE 256
typedef [context_handle] void * PEXIMPORT_CONTEXT_HANDLE;
typedef [ref] PEXIMPORT_CONTEXT_HANDLE * PPEXIMPORT_CONTEXT_HANDLE;
typedef pipe unsigned char EFS_EXIM_PIPE;
//
// Explicit binding for OpenFileRaw
//
long EfsRpcOpenFileRaw(
[in] handle_t binding_h,
[out] PPEXIMPORT_CONTEXT_HANDLE pphContext,
[in, string] wchar_t *FileName,
[in] long Flags
);
long EfsRpcReadFileRaw(
[in] PEXIMPORT_CONTEXT_HANDLE phContext,
[out] EFS_EXIM_PIPE *EfsOutPipe
);
long EfsRpcWriteFileRaw(
[in] PEXIMPORT_CONTEXT_HANDLE phContext,
[in] EFS_EXIM_PIPE *EfsInPipe
);
void EfsRpcCloseRaw(
[in, out] PPEXIMPORT_CONTEXT_HANDLE pphContext
);
long EfsRpcEncryptFileSrv(
[in] handle_t binding_h,
[in, string] wchar_t *FileName
);
long EfsRpcDecryptFileSrv(
[in] handle_t binding_h,
[in, string] wchar_t *FileName,
[in] unsigned long OpenFlag
);
//
// Beta 2 API
//
DWORD
EfsRpcQueryUsersOnFile(
[in] handle_t binding_h,
[in, string] LPCWSTR lpFileName,
[out] PENCRYPTION_CERTIFICATE_HASH_LIST * pUsers
);
DWORD
EfsRpcQueryRecoveryAgents(
[in] handle_t binding_h,
[in, string] LPCWSTR lpFileName,
[out] PENCRYPTION_CERTIFICATE_HASH_LIST * pRecoveryAgents
);
DWORD
EfsRpcRemoveUsersFromFile(
[in] handle_t binding_h,
[in, string] LPCWSTR lpFileName,
[in] PENCRYPTION_CERTIFICATE_HASH_LIST pUsers
);
DWORD
EfsRpcAddUsersToFile(
[in] handle_t binding_h,
[in, string] LPCWSTR lpFileName,
[in] PENCRYPTION_CERTIFICATE_LIST pEncryptionCertificates
);
DWORD
EfsRpcSetFileEncryptionKey(
[in] handle_t binding_h,
[in, unique] PENCRYPTION_CERTIFICATE pEncryptionCertificate
);
DWORD
EfsRpcNotSupported(
[in] handle_t binding_h,
[in, string] LPCWSTR lpSrcFileName,
[in, string] LPCWSTR lpDestFileName,
[in] DWORD dwCreationDistribution,
[in] DWORD dwAttributes,
[in, unique] PEFS_RPC_BLOB pRelativeSD,
[in] BOOL bInheritHandle
);
DWORD EfsRpcFileKeyInfo(
[in] handle_t binding_h,
[in, string] LPCWSTR lpFileName,
[in] DWORD InfoClass,
[out] PEFS_RPC_BLOB *KeyInfo
);
DWORD
EfsRpcDuplicateEncryptionInfoFile(
[in] handle_t binding_h,
[in, string] LPCWSTR lpSrcFileName,
[in, string] LPCWSTR lpDestFileName,
[in] DWORD dwCreationDistribution,
[in] DWORD dwAttributes,
[in, unique] PEFS_RPC_BLOB pRelativeSD,
[in] BOOL bInheritHandle
);
}