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.

779 lines
18 KiB

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. scerpc.idl
  5. Abstract:
  6. Security Configuration Editor (SCE ) Engine RPC Interface Definition File
  7. This file contains the RPC Interface Definition Language file for
  8. the SCE Engine. This file includes all of the prototypes for the SCE
  9. functions that are callable via RPC. These functions are internal versions
  10. of API and are NOT visible to clients of the SCE Engine. An SCE Engine
  11. client calls the SCE engine API defined in file secedit.h/scesvc.h/scesetup.h.
  12. These API are wrappers which call client RPC stubs generated from this idl
  13. file by the RPC compiler.
  14. ///////////////////////////////////////////////////////////////////////////
  15. // Please note:
  16. //
  17. // structure definitions in private\inc\secedit.h, scesetup.h and
  18. // public\sdk\inc\scesvc.h must be in ssync with this IDL defition.
  19. //
  20. ///////////////////////////////////////////////////////////////////////////
  21. Author:
  22. Jin Huang (JinHuang) Jan 26, 1998
  23. Environment:
  24. User Mode
  25. Revision History:
  26. --*/
  27. [
  28. uuid(93149ca2-973b-11d1-8c39-00c04fb984f9),
  29. version(0.0),
  30. #ifdef __midl
  31. ms_union,
  32. #endif // __midl
  33. pointer_default(unique),
  34. ]
  35. interface scerpc
  36. {
  37. //
  38. // Import a dummy interface containing #includes for public .h files. This
  39. // trick is necessary so that midl will only generate marshalling routines
  40. // for subtypes that are relevant to the parameters specified on the RPC
  41. // interface. midl also ingores function prototypes contained therein.
  42. //
  43. import "sceimp.idl" ;
  44. //
  45. // The parens have to be omitted from the operand
  46. // because midl grammar does not support them.
  47. //
  48. //
  49. // SCE RPC Context Handle
  50. //
  51. typedef [context_handle] PVOID SCEPR_CONTEXT;
  52. typedef SCEPR_CONTEXT *PSCEPR_CONTEXT;
  53. typedef DWORD SCEPR_STATUS;
  54. typedef DWORD AREAPR;
  55. //
  56. // RPC'able Self-Relative Security Descriptor Definition.
  57. //
  58. typedef struct _SCEPR_SR_SECURITY_DESCRIPTOR {
  59. ULONG Length;
  60. [size_is(Length)] UCHAR *SecurityDescriptor;
  61. } SCEPR_SR_SECURITY_DESCRIPTOR, *PSCEPR_SR_SECURITY_DESCRIPTOR;
  62. typedef enum _SCEPR_SERVER_TYPE_ {
  63. SCEPR_UNKNOWN = 0,
  64. SCEPR_DC_WITH_DS,
  65. SCEPR_DC,
  66. SCEPR_NT5_SERVER,
  67. SCEPR_NT4_SERVER,
  68. SCEPR_NT5_WKS,
  69. SCEPR_NT4_WKS
  70. } SCEPR_SERVER_TYPE, *PSCEPR_SERVER_TYPE;
  71. //
  72. // service info type (scesvc)
  73. //
  74. typedef enum _SCEPR_SVCINFO_TYPE {
  75. SceprConfigurationInfo,
  76. SceprMergedPolicyInfo,
  77. SceprAnalysisInfo,
  78. SceprInternalUse
  79. } SCEPR_SVCINFO_TYPE;
  80. //
  81. // SVC enumeration type
  82. //
  83. typedef ULONG SCEPR_ENUM_CONTEXT, *PSCEPR_ENUM_CONTEXT;
  84. //
  85. // SVC info structure
  86. //
  87. typedef struct _SCEPR_SVCINFO_LINE {
  88. [string] wchar_t *Key;
  89. [size_is(ValueLen)] byte *Value;
  90. DWORD ValueLen;
  91. } SCEPR_SVCINFO_LINE, *PSCEPR_SVCINFO_LINE;
  92. typedef struct _SCEPR_SVCINFO {
  93. DWORD Count;
  94. [size_is(Count)] SCEPR_SVCINFO_LINE *Lines;
  95. } SCEPR_SVCINFO, *PSCEPR_SVCINFO;
  96. typedef struct _SCEPR_VALUEINFO {
  97. DWORD ValueLen;
  98. [size_is(ValueLen)] byte *Value;
  99. } SCEPR_VALUEINFO, *PSCEPR_VALUEINFO;
  100. //
  101. // secedit definitions
  102. //
  103. typedef enum _SCEPR_TYPE {
  104. SCEPR_SYSTEM = 300,
  105. SCEPR_GPO,
  106. SCEPR_SCP,
  107. SCEPR_SAP,
  108. SCEPR_SCP_I, // internal type
  109. SCEPR_SMP_I, // internal type
  110. SCEPR_SMP,
  111. SCEPR_INF
  112. } SCEPR_TYPE;
  113. //
  114. // link list is marshlled automatically by RPCRT
  115. //
  116. typedef struct _SCEPR_ERROR_LOG_INFO {
  117. [string,unique] wchar_t *buffer;
  118. DWORD rc;
  119. struct _SCEPR_ERROR_LOG_INFO *next;
  120. } SCEPR_ERROR_LOG_INFO, *PSCEPR_ERROR_LOG_INFO;
  121. typedef struct _SCEPR_NAME_LIST {
  122. [string] wchar_t *Name;
  123. struct _SCEPR_NAME_LIST *Next;
  124. } SCEPR_NAME_LIST, *PSCEPR_NAME_LIST;
  125. typedef struct _SCEPR_NAME_STATUS_LIST {
  126. [string] wchar_t *Name;
  127. DWORD Status;
  128. struct _SCEPR_NAME_STATUS_LIST *Next;
  129. } SCEPR_NAME_STATUS_LIST, *PSCEPR_NAME_STATUS_LIST;
  130. //
  131. // privilege assignment
  132. //
  133. typedef struct _SCEPR_PRIV_ASSIGN {
  134. [string] wchar_t *Name;
  135. DWORD Value;
  136. SCEPR_NAME_LIST *AssignedTo;
  137. DWORD Status;
  138. struct _SCEPR_PRIV_ASSIGN *Next;
  139. } SCEPR_PRIV_ASSIGN, *PSCEPR_PRIV_ASSIGN;
  140. //
  141. // structures within the union
  142. //
  143. /*
  144. typedef struct _SCEPR_UNION_STRUCT_SCP {
  145. SCEPR_NAME_LIST *pAccountProfiles;
  146. SCEPR_NAME_STATUS_LIST *pPrivilegeAssignedTo;
  147. } SCEPR_UNION_STRUCT_SCP;
  148. */
  149. typedef struct _SCEPR_UNION_STRUCT_SMP {
  150. SCEPR_NAME_LIST *pUserList;
  151. SCEPR_PRIV_ASSIGN *pPrivilegeAssignedTo;
  152. } SCEPR_UNION_STRUCT_SMP;
  153. //
  154. // union of otherinfo (scp/smp/sap)
  155. //
  156. // [case(SCEPR_SCP_I,SCEPR_SMP_I)] SCEPR_UNION_STRUCT_SCP scp;
  157. typedef [switch_type(SCEPR_TYPE)] union
  158. _SCEPR_UNION_OTHERINFO {
  159. [case(SCEPR_SCP,SCEPR_SMP,SCEPR_SYSTEM)] SCEPR_UNION_STRUCT_SMP smp;
  160. [case(SCEPR_SAP)] SCEPR_UNION_STRUCT_SMP sap;
  161. } SCEPR_UNION_OTHERINFO;
  162. //
  163. // group membership structure
  164. //
  165. typedef struct _SCEPR_GROUPS {
  166. [string] wchar_t *GroupName;
  167. SCEPR_NAME_LIST *pMembers;
  168. SCEPR_NAME_LIST *pMemberOf;
  169. DWORD Status;
  170. SCEPR_NAME_STATUS_LIST *pPrivilegesHeld;
  171. struct _SCEPR_GROUPS *Next;
  172. } SCEPR_GROUPS, *PSCEPR_GROUPS;
  173. //
  174. // services structure
  175. //
  176. typedef struct _SCEPR_SERVICES {
  177. [string] wchar_t *ServiceName;
  178. [string] wchar_t *DisplayName;
  179. BYTE Status;
  180. BYTE Startup;
  181. [unique] SCEPR_SR_SECURITY_DESCRIPTOR *pSecurityDescriptor;
  182. SECURITY_INFORMATION SeInfo;
  183. struct _SCEPR_SERVICES *Next;
  184. } SCEPR_SERVICES, *PSCEPR_SERVICES;
  185. //
  186. // object list structure
  187. //
  188. typedef struct _SCEPR_OBJECT_LIST {
  189. [string] wchar_t *Name;
  190. BYTE Status;
  191. BOOL IsContainer;
  192. DWORD Count;
  193. struct _SCEPR_OBJECT_LIST *Next;
  194. } SCEPR_OBJECT_LIST, *PSCEPR_OBJECT_LIST;
  195. typedef struct _SCEPR_OBJECT_LIST_NODE {
  196. [string] wchar_t *Name;
  197. BYTE Status;
  198. BOOL IsContainer;
  199. DWORD Count;
  200. } SCEPR_OBJECT_LIST_NODE, *PSCEPR_OBJECT_LIST_NODE;
  201. typedef struct _SCEPR_OBJECT_CHILDREN {
  202. DWORD nCount;
  203. DWORD MaxCount;
  204. [size_is(nCount)] PSCEPR_OBJECT_LIST_NODE arrObject[*];
  205. } SCEPR_OBJECT_CHILDREN, *PSCEPR_OBJECT_CHILDREN;
  206. //
  207. // kerberos structure
  208. //
  209. typedef struct _SCEPR_KERBEROS {
  210. DWORD MaxTicketAge;
  211. DWORD MaxRenewAge;
  212. DWORD MaxServiceAge;
  213. DWORD MaxClockSkew;
  214. DWORD TicketValidateClient;
  215. } SCEPR_KERBEROS, *PSCEPR_KERBEROS;
  216. //
  217. // registry values
  218. //
  219. typedef struct _SCEPR_REGISTRY_VALUES {
  220. [string] wchar_t *FullValueName;
  221. [string,unique] wchar_t *Value;
  222. DWORD ValueType;
  223. DWORD Status; // match, mismatch, not analyzed, error
  224. } SCEPR_REGISTRY_VALUES, *PSCEPR_REGISTRY_VALUES;
  225. //
  226. // profile info structure
  227. //
  228. typedef struct _SCEPR_PROFILE_INFO {
  229. SCEPR_TYPE Type;
  230. DWORD MinimumPasswordAge;
  231. DWORD MaximumPasswordAge;
  232. DWORD MinimumPasswordLength;
  233. DWORD PasswordComplexity;
  234. DWORD PasswordHistorySize;
  235. DWORD LockoutBadCount;
  236. DWORD ResetLockoutCount;
  237. DWORD LockoutDuration;
  238. DWORD RequireLogonToChangePassword;
  239. DWORD ForceLogoffWhenHourExpire;
  240. [string] wchar_t *NewAdministratorName;
  241. [string] wchar_t *NewGuestName;
  242. DWORD SecureSystemPartition;
  243. DWORD ClearTextPassword;
  244. DWORD LSAAnonymousNameLookup;
  245. //
  246. // union type
  247. //
  248. [switch_is(Type)] SCEPR_UNION_OTHERINFO OtherInfo;
  249. SCEPR_GROUPS *pGroupMembership;
  250. //
  251. // objects
  252. //
  253. SCEPR_OBJECT_LIST *pRegistryKeys;
  254. SCEPR_SERVICES *pServices;
  255. SCEPR_OBJECT_LIST *pFiles;
  256. SCEPR_OBJECT_LIST *pDsObjects;
  257. // kerberos info
  258. SCEPR_KERBEROS *pKerberosInfo;
  259. DWORD MaximumLogSize[3];
  260. DWORD AuditLogRetentionPeriod[3];
  261. DWORD RetentionDays[3];
  262. DWORD RestrictGuestAccess[3];
  263. DWORD AuditSystemEvents;
  264. DWORD AuditLogonEvents;
  265. DWORD AuditObjectAccess;
  266. DWORD AuditPrivilegeUse;
  267. DWORD AuditPolicyChange;
  268. DWORD AuditAccountManage;
  269. DWORD AuditProcessTracking;
  270. DWORD AuditDSSAccess;
  271. DWORD AuditAccountLogon;
  272. DWORD CrashOnAuditFull;
  273. DWORD RegValueCount;
  274. [size_is(RegValueCount)] SCEPR_REGISTRY_VALUES *aRegValues;
  275. DWORD EnableAdminAccount;
  276. DWORD EnableGuestAccount;
  277. } SCEPR_PROFILE_INFO, *PSCEPR_PROFILE_INFO;
  278. //
  279. // object security structure
  280. //
  281. typedef struct _SCEPR_OBJECT_SECURITY {
  282. [string] wchar_t *Name;
  283. BYTE Status;
  284. BOOL IsContainer;
  285. [unique] SCEPR_SR_SECURITY_DESCRIPTOR *pSecurityDescriptor;
  286. SECURITY_INFORMATION SeInfo;
  287. } SCEPR_OBJECT_SECURITY, *PSCEPR_OBJECT_SECURITY;
  288. //
  289. // SVC prototypes
  290. //
  291. SCEPR_STATUS
  292. SceSvcRpcQueryInfo(
  293. [in] SCEPR_CONTEXT Context,
  294. [in] SCEPR_SVCINFO_TYPE SceSvcType,
  295. [in,string] wchar_t *ServiceName,
  296. [in,string,unique] wchar_t *Prefix,
  297. [in] BOOL bExact,
  298. [out] SCEPR_SVCINFO **ppvInfo,
  299. [in,out] SCEPR_ENUM_CONTEXT *psceEnumHandle
  300. );
  301. SCEPR_STATUS
  302. SceSvcRpcSetInfo(
  303. [in] SCEPR_CONTEXT Context,
  304. [in] SCEPR_SVCINFO_TYPE SceSvcType,
  305. [in,string] wchar_t *ServiceName,
  306. [in,string,unique] wchar_t *Prefix,
  307. [in] BOOL bExact,
  308. [in] SCEPR_SVCINFO *pvInfo
  309. );
  310. //
  311. // scesetup prototypes
  312. //
  313. DWORD
  314. SceRpcSetupUpdateObject(
  315. [in] SCEPR_CONTEXT Context,
  316. [in,string] wchar_t *ObjectFullName,
  317. [in] DWORD ObjectType,
  318. [in] UINT nFlag,
  319. [in,string] wchar_t *SDText
  320. );
  321. DWORD
  322. SceRpcSetupMoveFile(
  323. [in] SCEPR_CONTEXT Context,
  324. [in,string] wchar_t *OldName,
  325. [in,string,unique] wchar_t *NewName,
  326. [in,string,unique] wchar_t *SDText
  327. );
  328. DWORD
  329. SceRpcGenerateTemplate(
  330. [in] handle_t binding_h,
  331. [in,string,unique] wchar_t *JetDbName,
  332. [in,string,unique] wchar_t *LogFileName,
  333. [out] SCEPR_CONTEXT *pContext
  334. );
  335. //
  336. // configure system
  337. //
  338. SCEPR_STATUS
  339. SceRpcConfigureSystem(
  340. [in] handle_t binding_h,
  341. [in,string,unique] wchar_t *InfFileName,
  342. [in,string,unique] wchar_t *DatabaseName,
  343. [in,string,unique] wchar_t *LogFileName,
  344. [in] DWORD ConfigOptions,
  345. [in] AREAPR Area,
  346. [in] DWORD pebSize,
  347. [in,size_is(pebSize),unique] UCHAR *pebClient,
  348. [out] DWORD *pdWarning
  349. );
  350. //
  351. // secedit prototypes
  352. //
  353. SCEPR_STATUS
  354. SceRpcGetDatabaseInfo(
  355. [in] SCEPR_CONTEXT Context,
  356. [in] SCEPR_TYPE ProfileType,
  357. [in] AREAPR Area,
  358. [out] SCEPR_PROFILE_INFO **ppInfoBuffer,
  359. [out] SCEPR_ERROR_LOG_INFO **Errlog
  360. );
  361. SCEPR_STATUS
  362. SceRpcGetObjectChildren(
  363. [in] SCEPR_CONTEXT Context,
  364. [in] SCEPR_TYPE ProfileType,
  365. [in] AREAPR Area,
  366. [in,string] wchar_t *ObjectPrefix,
  367. [out] SCEPR_OBJECT_CHILDREN **Buffer,
  368. [out] SCEPR_ERROR_LOG_INFO **Errlog
  369. );
  370. SCEPR_STATUS
  371. SceRpcOpenDatabase(
  372. [in] handle_t binding_h,
  373. [in,string] wchar_t *DatabaseName,
  374. [in] DWORD OpenOption,
  375. [out] SCEPR_CONTEXT *pContext
  376. );
  377. SCEPR_STATUS
  378. SceRpcCloseDatabase(
  379. [in,out] SCEPR_CONTEXT *Context
  380. );
  381. SCEPR_STATUS
  382. SceRpcGetDatabaseDescription(
  383. [in] SCEPR_CONTEXT Context,
  384. [out,string] wchar_t **Description
  385. );
  386. SCEPR_STATUS
  387. SceRpcGetDBTimeStamp(
  388. [in] SCEPR_CONTEXT Context,
  389. [out] PLARGE_INTEGER ptsConfig,
  390. [out] PLARGE_INTEGER ptsAnalysis
  391. );
  392. SCEPR_STATUS
  393. SceRpcGetObjectSecurity(
  394. [in] SCEPR_CONTEXT Context,
  395. [in] SCEPR_TYPE DbProfileType,
  396. [in] AREAPR Area,
  397. [in,string] wchar_t *ObjectName,
  398. [out] SCEPR_OBJECT_SECURITY **ObjSecurity
  399. );
  400. SCEPR_STATUS
  401. SceRpcGetAnalysisSummary(
  402. [in] SCEPR_CONTEXT Context,
  403. [in] AREAPR Area,
  404. [out] DWORD *pCount
  405. );
  406. SCEPR_STATUS
  407. SceRpcAnalyzeSystem(
  408. [in] handle_t binding_h,
  409. [in,string,unique] wchar_t *InfFileName,
  410. [in,string,unique] wchar_t *DatabaseName,
  411. [in,string,unique] wchar_t *LogFileName,
  412. [in] AREAPR Area,
  413. [in] DWORD AnalyzeOptions,
  414. [in] DWORD pebSize,
  415. [in,size_is(pebSize),unique] UCHAR *pebClient,
  416. [out] DWORD *pdWarning
  417. );
  418. SCEPR_STATUS
  419. SceRpcUpdateDatabaseInfo(
  420. [in] SCEPR_CONTEXT Context,
  421. [in] SCEPR_TYPE ProfileType,
  422. [in] AREAPR Area,
  423. [in] SCEPR_PROFILE_INFO *pInfo,
  424. [in] DWORD dwMode
  425. );
  426. SCEPR_STATUS
  427. SceRpcUpdateObjectInfo(
  428. [in] SCEPR_CONTEXT Context,
  429. [in] AREAPR Area,
  430. [in,string] wchar_t *ObjectName,
  431. [in] DWORD NameLen,
  432. [in] BYTE ConfigStatus,
  433. [in] BOOL IsContainer,
  434. [in,unique] SCEPR_SR_SECURITY_DESCRIPTOR *pSD,
  435. [in] SECURITY_INFORMATION SeInfo,
  436. [out, size_is(1)] BYTE *pAnalysisStatus
  437. );
  438. SCEPR_STATUS
  439. SceRpcStartTransaction(
  440. [in] SCEPR_CONTEXT Context
  441. );
  442. SCEPR_STATUS
  443. SceRpcCommitTransaction(
  444. [in] SCEPR_CONTEXT Context
  445. );
  446. SCEPR_STATUS
  447. SceRpcRollbackTransaction(
  448. [in] SCEPR_CONTEXT Context
  449. );
  450. //
  451. // get product type of the server (DS DC, NT4 DC, wks)
  452. //
  453. SCEPR_STATUS
  454. SceRpcGetServerProductType(
  455. [in] handle_t binding_h,
  456. [out] SCEPR_SERVER_TYPE *srvProduct
  457. );
  458. SCEPR_STATUS
  459. SceSvcRpcUpdateInfo(
  460. [in] SCEPR_CONTEXT Context,
  461. [in,string] wchar_t *ServiceName,
  462. [in] SCEPR_SVCINFO *Info
  463. );
  464. SCEPR_STATUS
  465. SceRpcCopyObjects(
  466. [in] SCEPR_CONTEXT Context,
  467. [in] SCEPR_TYPE ProfileType,
  468. [in,string] wchar_t *InfFileName,
  469. [in] AREAPR Area,
  470. [out] SCEPR_ERROR_LOG_INFO **pErrlog
  471. );
  472. SCEPR_STATUS
  473. SceRpcSetupResetLocalPolicy(
  474. [in] SCEPR_CONTEXT Context,
  475. [in] AREAPR Area,
  476. [in,string,unique] wchar_t *OneSectionName,
  477. [in] DWORD PolicyOptions
  478. );
  479. //
  480. // the filter interface - policy change notification
  481. //
  482. typedef struct _SCEPR_SID {
  483. UCHAR Revision;
  484. UCHAR SubAuthorityCount;
  485. SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
  486. [size_is(SubAuthorityCount)] ULONG SubAuthority[*];
  487. } SCEPR_SID, *PSCEPR_SID, **PPSCEPR_SID;
  488. DWORD
  489. SceRpcNotifySaveChangesInGP(
  490. [in] handle_t binding_h,
  491. [in] DWORD DbType,
  492. [in] DWORD DeltaType,
  493. [in] DWORD ObjectType,
  494. [in,unique] SCEPR_SID *ObjectSid,
  495. [in] DWORD ExplicitLowRight,
  496. [in] DWORD ExplicitHighRight
  497. );
  498. DWORD
  499. SceRpcControlNotificationQProcess(
  500. [in] handle_t binding_h,
  501. [in] DWORD Flag
  502. );
  503. //
  504. // register the client callback
  505. //
  506. [callback] SCEPR_STATUS
  507. SceClientCallback(
  508. [in] DWORD ncbTicks,
  509. [in] DWORD ncbTotalTicks,
  510. [in] AREAPR cbArea,
  511. [in,string,unique] wchar_t *szcbName
  512. );
  513. [callback] SCEPR_STATUS
  514. SceClientBrowseCallback(
  515. [in] LONG GpoID,
  516. [in,string,unique] wchar_t *KeyName,
  517. [in,string,unique] wchar_t *GpoName,
  518. [in,unique] SCEPR_SR_SECURITY_DESCRIPTOR *Value
  519. );
  520. SCEPR_STATUS
  521. SceRpcBrowseDatabaseTable(
  522. [in] handle_t binding_h,
  523. [in,string,unique] wchar_t *DatabaseName,
  524. [in] SCEPR_TYPE ProfileType,
  525. [in] AREAPR Area,
  526. [in] BOOL bDomainPolicyOnly
  527. );
  528. [callback] SCEPR_STATUS
  529. SceClientCallbackRsopLog(
  530. [in] AREAPR cbArea,
  531. [in] DWORD ncbErrorStatus,
  532. [in,string,unique] wchar_t *pSettingInfo,
  533. [in] DWORD dwPrivLow,
  534. [in] DWORD dwPrivHigh
  535. );
  536. //
  537. // set/get info to/from system directly
  538. //
  539. SCEPR_STATUS
  540. SceRpcGetSystemSecurityFromHandle(
  541. [in] SCEPR_CONTEXT Context,
  542. [in] AREAPR Area,
  543. [in] DWORD Options,
  544. [out] SCEPR_PROFILE_INFO **ppInfoBuffer,
  545. [out] SCEPR_ERROR_LOG_INFO **Errlog
  546. );
  547. SCEPR_STATUS
  548. SceRpcGetSystemSecurity(
  549. [in] handle_t binding_h,
  550. [in] AREAPR Area,
  551. [in] DWORD Options,
  552. [out] SCEPR_PROFILE_INFO **ppInfoBuffer,
  553. [out] SCEPR_ERROR_LOG_INFO **Errlog
  554. );
  555. SCEPR_STATUS
  556. SceRpcSetSystemSecurityFromHandle(
  557. [in] SCEPR_CONTEXT Context,
  558. [in] AREAPR Area,
  559. [in] DWORD Options,
  560. [in] SCEPR_PROFILE_INFO *pInfoBuffer,
  561. [out] SCEPR_ERROR_LOG_INFO **Errlog
  562. );
  563. SCEPR_STATUS
  564. SceRpcSetSystemSecurity(
  565. [in] handle_t binding_h,
  566. [in] AREAPR Area,
  567. [in] DWORD Options,
  568. [in] SCEPR_PROFILE_INFO *pInfoBuffer,
  569. [out] SCEPR_ERROR_LOG_INFO **Errlog
  570. );
  571. //
  572. // allow get/set/delete a single key
  573. //
  574. SCEPR_STATUS
  575. SceRpcSetDatabaseSetting(
  576. [in] SCEPR_CONTEXT Context,
  577. [in] SCEPR_TYPE ProfileType,
  578. [in,string] wchar_t *SectionName,
  579. [in,string] wchar_t *KeyName,
  580. [in,unique] PSCEPR_VALUEINFO pValueInfo
  581. );
  582. SCEPR_STATUS
  583. SceRpcGetDatabaseSetting(
  584. [in] SCEPR_CONTEXT Context,
  585. [in] SCEPR_TYPE ProfileType,
  586. [in,string] wchar_t *SectionName,
  587. [in,string] wchar_t *KeyName,
  588. [out] PSCEPR_VALUEINFO *pValueInfo
  589. );
  590. DWORD
  591. SceRpcConfigureConvertedFileSecurityImmediately(
  592. [in] handle_t binding_h,
  593. [in,string] wchar_t *pszDriveName
  594. );
  595. ////////////////////////////////////////////////////////////////////////////
  596. // //
  597. // END RPC INTERFACE //
  598. // //
  599. ////////////////////////////////////////////////////////////////////////////
  600. }