Leaked source code of windows server 2003
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.

279 lines
10 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 2001
  5. //
  6. // File: certreqd.idl
  7. //
  8. // Contents: Definition of DCOM Interface for Certificate Services
  9. //
  10. //---------------------------------------------------------------------------
  11. import "certbase.idl";
  12. import "esent.idl";
  13. import "oaidl.idl";
  14. // Interface ICertAdminD
  15. [
  16. object,
  17. uuid(d99e6e71-fc88-11d0-b498-00a0c90312f3),
  18. helpstring("ICertAdmin DCOM Interface"),
  19. pointer_default(unique)
  20. ]
  21. interface ICertAdminD: IUnknown
  22. {
  23. HRESULT SetExtension(
  24. [in, string, unique] wchar_t const *pwszAuthority,
  25. [in] DWORD dwRequestId,
  26. [in, string, unique] wchar_t const *pwszExtensionName,
  27. [in] DWORD dwType, // PROPTYPE_*
  28. [in] DWORD dwFlags, // EXTENSION_*
  29. [in, ref] CERTTRANSBLOB *pctbValue);
  30. HRESULT SetAttributes(
  31. [in, string, unique] wchar_t const *pwszAuthority,
  32. [in] DWORD dwRequestId,
  33. [in, string, unique] wchar_t const *pwszAttributes);
  34. HRESULT ResubmitRequest(
  35. [in, string, unique] wchar_t const *pwszAuthority,
  36. [in] DWORD dwRequestId,
  37. [out] DWORD *pdwDisposition); // CA_DISP_*
  38. HRESULT DenyRequest(
  39. [in, string, unique] wchar_t const *pwszAuthority,
  40. [in] DWORD dwRequestId);
  41. HRESULT IsValidCertificate(
  42. [in, string, unique] wchar_t const *pwszAuthority,
  43. [in, string, unique] wchar_t const *pSerialNumber,
  44. [out] LONG *pRevocationReason, // CRL_REASON_*
  45. [out] LONG *pDisposition); // CA_DISP_*
  46. HRESULT PublishCRL(
  47. [in, string, unique] wchar_t const *pwszAuthority,
  48. [in] FILETIME FileTime);
  49. HRESULT GetCRL(
  50. [in, string, unique] wchar_t const *pwszAuthority,
  51. [out, ref] CERTTRANSBLOB *pctbCRL); // CRL
  52. HRESULT RevokeCertificate(
  53. [in, string, unique] wchar_t const *pwszAuthority,
  54. [in, string, unique] wchar_t const *pwszSerialNumber,
  55. [in] DWORD Reason, // CRL_REASON_*
  56. [in] FILETIME FileTime);
  57. HRESULT EnumViewColumn(
  58. [in, string, unique] wchar_t const *pwszAuthority,
  59. [in] DWORD iColumn,
  60. [in] DWORD cColumn,
  61. [out] DWORD *pcColumn,
  62. [out, ref] CERTTRANSBLOB *pctbColumnInfo); // CERTTRANSDBCOLUMN
  63. HRESULT GetViewDefaultColumnSet(
  64. [in, string, unique] wchar_t const *pwszAuthority,
  65. [in] DWORD iColumnSetDefault,
  66. [out] DWORD *pcColumn,
  67. [out, ref] CERTTRANSBLOB *pctbColumnInfo); // DWORD ColIds
  68. HRESULT EnumAttributesOrExtensions(
  69. [in, string, unique] wchar_t const *pwszAuthority,
  70. [in] DWORD RowId,
  71. [in] DWORD Flags, // CDBENUM_*
  72. [in, string, unique] wchar_t const *pwszLast,
  73. [in] DWORD celt,
  74. [out] DWORD *pceltFetched,
  75. [out, ref] CERTTRANSBLOB *pctbOut);
  76. // CERTTRANSDBATTRIBUTE or CERTTRANSDBEXTENSION
  77. HRESULT OpenView(
  78. [in, string, unique] wchar_t const *pwszAuthority,
  79. [in] DWORD ccvr,
  80. [in, size_is(ccvr)] CERTVIEWRESTRICTION const *acvr,
  81. [in] DWORD ccolOut,
  82. [in, size_is(ccolOut)] DWORD const *acolOut,
  83. [in] DWORD ielt,
  84. [in] DWORD celt,
  85. [out] DWORD *pceltFetched,
  86. [out, ref] CERTTRANSBLOB *pctbResultRows);
  87. // CERTTRANSDBRESULTROW, containing CERTTRANSDBRESULTCOLUMN
  88. HRESULT EnumView(
  89. [in, string, unique] wchar_t const *pwszAuthority,
  90. [in] DWORD ielt,
  91. [in] DWORD celt,
  92. [out] DWORD *pceltFetched,
  93. [out, ref] CERTTRANSBLOB *pctbResultRows);
  94. // CERTTRANSDBRESULTROW, containing CERTTRANSDBRESULTCOLUMN
  95. HRESULT CloseView(
  96. [in, string, unique] wchar_t const *pwszAuthority);
  97. HRESULT ServerControl(
  98. [in, string, unique] wchar_t const *pwszAuthority,
  99. [in] DWORD dwControlFlags, // CSCONTROL_*
  100. [out, ref] CERTTRANSBLOB *pctbOut);
  101. // this is a test function
  102. HRESULT Ping(
  103. [in, string, unique] wchar_t const *pwszAuthority);
  104. HRESULT GetServerState(
  105. [in, string, unique] wchar_t const *pwszAuthority,
  106. [out] DWORD *pdwState); // 0 or 1
  107. HRESULT BackupPrepare(
  108. [in, string, unique] wchar_t const *pwszAuthority,
  109. [in] unsigned long grbitJet, // JET_bitBackup
  110. [in] unsigned long dwBackupFlags, // must be zero
  111. [in] WCHAR const *pwszBackupAnnotation, // not used
  112. [in] DWORD dwClientIdentifier); // not used
  113. HRESULT BackupEnd();
  114. HRESULT BackupGetAttachmentInformation(
  115. [out, size_is( , *pcwcDBFiles)] WCHAR **ppwszzDBFiles,
  116. [out] LONG *pcwcDBFiles);
  117. HRESULT BackupGetBackupLogs(
  118. [out, size_is( , *pcwcLogFiles)] WCHAR **ppwszzLogFiles,
  119. [out] LONG *pcwcLogFiles);
  120. HRESULT BackupOpenFile(
  121. [in, string, unique] wchar_t const *pwszPath,
  122. [out] unsigned hyper *pliLength);
  123. HRESULT BackupReadFile(
  124. [ref, out, size_is(cbBuffer)] BYTE *pbBuffer,
  125. [in] LONG cbBuffer,
  126. [out] LONG *pcbRead);
  127. HRESULT BackupCloseFile();
  128. HRESULT BackupTruncateLogs();
  129. HRESULT ImportCertificate(
  130. [in, string, unique] wchar_t const *pwszAuthority,
  131. [in, ref] CERTTRANSBLOB *pctbCertificate, // Cert
  132. [in] LONG dwFlags, // ICF_*
  133. [out] LONG *pdwRequestId);
  134. HRESULT BackupGetDynamicFiles(
  135. [out, size_is( , *pcwcFiles)] WCHAR **ppwszzFiles,
  136. [out] LONG *pcwcFiles);
  137. HRESULT RestoreGetDatabaseLocations(
  138. [out, size_is( , *pcwcPaths)] WCHAR **ppwszzDatabaseLocations,
  139. [out] LONG *pcwcPaths);
  140. };
  141. // Interface ICertAdminD2
  142. [
  143. object,
  144. uuid(7fe0d935-dda6-443f-85d0-1cfb58fe41dd),
  145. helpstring("ICertAdmin2 DCOM Interface"),
  146. pointer_default(unique)
  147. ]
  148. interface ICertAdminD2: ICertAdminD
  149. {
  150. HRESULT PublishCRLs(
  151. [in, string, unique] wchar_t const *pwszAuthority,
  152. [in] FILETIME FileTime,
  153. [in] DWORD Flags); // CA_CRL_*
  154. HRESULT GetCAProperty(
  155. [in, string, unique] wchar_t const *pwszAuthority,
  156. [in] LONG PropId, // CR_PROP_*
  157. [in] LONG PropIndex,
  158. [in] LONG PropType, // PROPTYPE_*
  159. [out, ref] CERTTRANSBLOB *pctbPropertyValue); // varies
  160. HRESULT SetCAProperty(
  161. [in, string, unique] wchar_t const *pwszAuthority,
  162. [in] LONG PropId, // CR_PROP_*
  163. [in] LONG PropIndex,
  164. [in] LONG PropType, // PROPTYPE_*
  165. [in] CERTTRANSBLOB *pctbPropertyValue); // varies
  166. HRESULT GetCAPropertyInfo(
  167. [in, string, unique] wchar_t const *pwszAuthority,
  168. [out] LONG *pcProperty,
  169. [out, ref] CERTTRANSBLOB *pctbPropInfo); // CATRANSPROP
  170. HRESULT EnumViewColumnTable(
  171. [in, string, unique] wchar_t const *pwszAuthority,
  172. [in] DWORD iTable, // CVRC_TABLE_*
  173. [in] DWORD iColumn,
  174. [in] DWORD cColumn,
  175. [out] DWORD *pcColumn,
  176. [out, ref] CERTTRANSBLOB *pctbColumnInfo); // CERTTRANSDBCOLUMN
  177. HRESULT GetCASecurity(
  178. [in, string, unique] wchar_t const *pwszAuthority,
  179. [out, ref] CERTTRANSBLOB *pctbSD); // SD
  180. HRESULT SetCASecurity(
  181. [in, string, unique] wchar_t const *pwszAuthority,
  182. [in, ref] CERTTRANSBLOB *pctbSD); // SD
  183. // this is a test function
  184. HRESULT Ping2(
  185. [in, string, unique] wchar_t const *pwszAuthority);
  186. HRESULT GetArchivedKey(
  187. [in, string, unique] wchar_t const *pwszAuthority,
  188. [in] DWORD dwRequestId,
  189. [out, ref] CERTTRANSBLOB *pctbArchivedKey);
  190. // encrypted PKCS7 inside a signed PKCS7
  191. HRESULT GetAuditFilter(
  192. [in, string, unique] wchar_t const *pwszAuthority,
  193. [out] DWORD *pdwFilter); // SE_AUDITID_CERTSRV_*
  194. HRESULT SetAuditFilter(
  195. [in, string, unique] wchar_t const *pwszAuthority,
  196. [in] DWORD dwFilter); // SE_AUDITID_CERTSRV_*
  197. HRESULT GetOfficerRights(
  198. [in, string, unique] wchar_t const *pwszAuthority,
  199. [out] BOOL *pfEnabled,
  200. [out, ref] CERTTRANSBLOB *pctbSD); // custom SD
  201. HRESULT SetOfficerRights(
  202. [in, string, unique] wchar_t const *pwszAuthority,
  203. [in] BOOL fEnable,
  204. [in, ref] CERTTRANSBLOB *pctbSD); // custom SD
  205. HRESULT GetConfigEntry(
  206. [in, string, unique] wchar_t const *pwszAuthority,
  207. [in, string, unique] wchar_t const *pwszNodePath,
  208. [in, string, ref] wchar_t const *pwszEntry,
  209. [out, ref] VARIANT *pVariant);
  210. HRESULT SetConfigEntry(
  211. [in, string, unique] wchar_t const *pwszAuthority,
  212. [in, string, unique] wchar_t const *pwszNodePath,
  213. [in, string, ref] wchar_t const *pwszEntry,
  214. [in, ref] VARIANT *pVariant);
  215. HRESULT ImportKey(
  216. [in, string, unique] wchar_t const *pwszAuthority,
  217. [in] DWORD dwRequestId,
  218. [in, string, unique] wchar_t const *pwszCertHash,
  219. [in] DWORD dwFlags,
  220. [in, ref] CERTTRANSBLOB *pctbKey); // IKF_*
  221. HRESULT GetMyRoles(
  222. [in, string, unique] wchar_t const *pwszAuthority,
  223. [out] LONG *pdwRoles); // CA_ACCESS_*
  224. HRESULT DeleteRow(
  225. [in, string, unique] wchar_t const *pwszAuthority,
  226. [in] DWORD dwFlags, // CDR_*
  227. [in] FILETIME FileTime,
  228. [in] DWORD dwTable, // CVRC_TABLE_*
  229. [in] DWORD dwRowId,
  230. [out, retval] LONG *pcDeleted);
  231. }