mirror of https://github.com/tongzx/nt5src
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.
126 lines
2.6 KiB
126 lines
2.6 KiB
//
|
|
// 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
|
|
);
|
|
}
|
|
|