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