Source code of Windows XP (NT5)
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

  1. //
  2. // efsrpc.idl
  3. //
  4. [
  5. uuid(c681d488-d850-11d0-8c52-00c04fd90f7e),
  6. version(1.0),
  7. ]
  8. interface efsrpc
  9. {
  10. import "efsimp.idl" ;
  11. #define MAX_SID_SIZE 256
  12. typedef [context_handle] void * PEXIMPORT_CONTEXT_HANDLE;
  13. typedef [ref] PEXIMPORT_CONTEXT_HANDLE * PPEXIMPORT_CONTEXT_HANDLE;
  14. typedef pipe unsigned char EFS_EXIM_PIPE;
  15. //
  16. // Explicit binding for OpenFileRaw
  17. //
  18. long EfsRpcOpenFileRaw(
  19. [in] handle_t binding_h,
  20. [out] PPEXIMPORT_CONTEXT_HANDLE pphContext,
  21. [in, string] wchar_t *FileName,
  22. [in] long Flags
  23. );
  24. long EfsRpcReadFileRaw(
  25. [in] PEXIMPORT_CONTEXT_HANDLE phContext,
  26. [out] EFS_EXIM_PIPE *EfsOutPipe
  27. );
  28. long EfsRpcWriteFileRaw(
  29. [in] PEXIMPORT_CONTEXT_HANDLE phContext,
  30. [in] EFS_EXIM_PIPE *EfsInPipe
  31. );
  32. void EfsRpcCloseRaw(
  33. [in, out] PPEXIMPORT_CONTEXT_HANDLE pphContext
  34. );
  35. long EfsRpcEncryptFileSrv(
  36. [in] handle_t binding_h,
  37. [in, string] wchar_t *FileName
  38. );
  39. long EfsRpcDecryptFileSrv(
  40. [in] handle_t binding_h,
  41. [in, string] wchar_t *FileName,
  42. [in] unsigned long OpenFlag
  43. );
  44. //
  45. // Beta 2 API
  46. //
  47. DWORD
  48. EfsRpcQueryUsersOnFile(
  49. [in] handle_t binding_h,
  50. [in, string] LPCWSTR lpFileName,
  51. [out] PENCRYPTION_CERTIFICATE_HASH_LIST * pUsers
  52. );
  53. DWORD
  54. EfsRpcQueryRecoveryAgents(
  55. [in] handle_t binding_h,
  56. [in, string] LPCWSTR lpFileName,
  57. [out] PENCRYPTION_CERTIFICATE_HASH_LIST * pRecoveryAgents
  58. );
  59. DWORD
  60. EfsRpcRemoveUsersFromFile(
  61. [in] handle_t binding_h,
  62. [in, string] LPCWSTR lpFileName,
  63. [in] PENCRYPTION_CERTIFICATE_HASH_LIST pUsers
  64. );
  65. DWORD
  66. EfsRpcAddUsersToFile(
  67. [in] handle_t binding_h,
  68. [in, string] LPCWSTR lpFileName,
  69. [in] PENCRYPTION_CERTIFICATE_LIST pEncryptionCertificates
  70. );
  71. DWORD
  72. EfsRpcSetFileEncryptionKey(
  73. [in] handle_t binding_h,
  74. [in, unique] PENCRYPTION_CERTIFICATE pEncryptionCertificate
  75. );
  76. DWORD
  77. EfsRpcNotSupported(
  78. [in] handle_t binding_h,
  79. [in, string] LPCWSTR lpSrcFileName,
  80. [in, string] LPCWSTR lpDestFileName,
  81. [in] DWORD dwCreationDistribution,
  82. [in] DWORD dwAttributes,
  83. [in, unique] PEFS_RPC_BLOB pRelativeSD,
  84. [in] BOOL bInheritHandle
  85. );
  86. DWORD EfsRpcFileKeyInfo(
  87. [in] handle_t binding_h,
  88. [in, string] LPCWSTR lpFileName,
  89. [in] DWORD InfoClass,
  90. [out] PEFS_RPC_BLOB *KeyInfo
  91. );
  92. DWORD
  93. EfsRpcDuplicateEncryptionInfoFile(
  94. [in] handle_t binding_h,
  95. [in, string] LPCWSTR lpSrcFileName,
  96. [in, string] LPCWSTR lpDestFileName,
  97. [in] DWORD dwCreationDistribution,
  98. [in] DWORD dwAttributes,
  99. [in, unique] PEFS_RPC_BLOB pRelativeSD,
  100. [in] BOOL bInheritHandle
  101. );
  102. }