AclAPI.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:17k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2. Copyright (c) 1993-1999, Microsoft Corporation
  3. Module Name:
  4.     aclapi.h
  5. Abstract:
  6.     Public
  7.     Structure/constant definitions and typedefines for the Win32 Access
  8.     Control APIs
  9. --*/
  10. #ifndef __ACCESS_CONTROL_API__
  11. #define __ACCESS_CONTROL_API__
  12. #include <windows.h>
  13. #include <accctrl.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. //
  18. // Progress Function:
  19. // Caller of tree operation implements this Progress function, then
  20. // passes its function pointer to tree operation.
  21. // Tree operation invokes Progress function to provide progress and error
  22. // information to the caller during the potentially long execution
  23. // of the tree operation.  Tree operation provides the name of the object
  24. // last processed and the error status of the operation on that object.
  25. // Tree operation also passes the current InvokeSetting value.
  26. // Caller may change the InvokeSetting value, for example, from "Always"
  27. // to "Only On Error."
  28. //
  29. typedef VOID (*FN_PROGRESS) (
  30.     IN LPWSTR                   pObjectName,    // name of object just processed
  31.     IN DWORD                    Status,         // status of operation on object
  32.     IN OUT PPROG_INVOKE_SETTING pInvokeSetting, // Never, always,
  33.     IN PVOID                    Args,           // Caller specific data
  34.     IN BOOL                     SecuritySet     // Whether security was set
  35.     );
  36. WINADVAPI
  37. DWORD
  38. WINAPI
  39. SetEntriesInAclA(
  40.     IN  ULONG               cCountOfExplicitEntries,
  41.     IN  PEXPLICIT_ACCESS_A  pListOfExplicitEntries,
  42.     IN  PACL                OldAcl,
  43.     OUT PACL              * NewAcl
  44.     );
  45. WINADVAPI
  46. DWORD
  47. WINAPI
  48. SetEntriesInAclW(
  49.     IN  ULONG               cCountOfExplicitEntries,
  50.     IN  PEXPLICIT_ACCESS_W  pListOfExplicitEntries,
  51.     IN  PACL                OldAcl,
  52.     OUT PACL              * NewAcl
  53.     );
  54. #ifdef UNICODE
  55. #define SetEntriesInAcl  SetEntriesInAclW
  56. #else
  57. #define SetEntriesInAcl  SetEntriesInAclA
  58. #endif // !UNICODE
  59. WINADVAPI
  60. DWORD
  61. WINAPI
  62. GetExplicitEntriesFromAclA(
  63.     IN  PACL                  pacl,
  64.     OUT PULONG                pcCountOfExplicitEntries,
  65.     OUT PEXPLICIT_ACCESS_A  * pListOfExplicitEntries
  66.     );
  67. WINADVAPI
  68. DWORD
  69. WINAPI
  70. GetExplicitEntriesFromAclW(
  71.     IN  PACL                  pacl,
  72.     OUT PULONG                pcCountOfExplicitEntries,
  73.     OUT PEXPLICIT_ACCESS_W  * pListOfExplicitEntries
  74.     );
  75. #ifdef UNICODE
  76. #define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclW
  77. #else
  78. #define GetExplicitEntriesFromAcl  GetExplicitEntriesFromAclA
  79. #endif // !UNICODE
  80. WINADVAPI
  81. DWORD
  82. WINAPI
  83. GetEffectiveRightsFromAclA(
  84.     IN  PACL          pacl,
  85.     IN  PTRUSTEE_A    pTrustee,
  86.     OUT PACCESS_MASK  pAccessRights
  87.     );
  88. WINADVAPI
  89. DWORD
  90. WINAPI
  91. GetEffectiveRightsFromAclW(
  92.     IN  PACL          pacl,
  93.     IN  PTRUSTEE_W    pTrustee,
  94.     OUT PACCESS_MASK  pAccessRights
  95.     );
  96. #ifdef UNICODE
  97. #define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclW
  98. #else
  99. #define GetEffectiveRightsFromAcl  GetEffectiveRightsFromAclA
  100. #endif // !UNICODE
  101. WINADVAPI
  102. DWORD
  103. WINAPI
  104. GetAuditedPermissionsFromAclA(
  105.     IN  PACL          pacl,
  106.     IN  PTRUSTEE_A    pTrustee,
  107.     OUT PACCESS_MASK  pSuccessfulAuditedRights,
  108.     OUT PACCESS_MASK  pFailedAuditRights
  109.     );
  110. WINADVAPI
  111. DWORD
  112. WINAPI
  113. GetAuditedPermissionsFromAclW(
  114.     IN  PACL          pacl,
  115.     IN  PTRUSTEE_W    pTrustee,
  116.     OUT PACCESS_MASK  pSuccessfulAuditedRights,
  117.     OUT PACCESS_MASK  pFailedAuditRights
  118.     );
  119. #ifdef UNICODE
  120. #define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclW
  121. #else
  122. #define GetAuditedPermissionsFromAcl  GetAuditedPermissionsFromAclA
  123. #endif // !UNICODE
  124. WINADVAPI
  125. DWORD
  126. WINAPI
  127. GetNamedSecurityInfoA(
  128.     IN  LPSTR                pObjectName,
  129.     IN  SE_OBJECT_TYPE         ObjectType,
  130.     IN  SECURITY_INFORMATION   SecurityInfo,
  131.     OUT PSID                 * ppsidOwner,
  132.     OUT PSID                 * ppsidGroup,
  133.     OUT PACL                 * ppDacl,
  134.     OUT PACL                 * ppSacl,
  135.     OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
  136.     );
  137. WINADVAPI
  138. DWORD
  139. WINAPI
  140. GetNamedSecurityInfoW(
  141.     IN  LPWSTR                pObjectName,
  142.     IN  SE_OBJECT_TYPE         ObjectType,
  143.     IN  SECURITY_INFORMATION   SecurityInfo,
  144.     OUT PSID                 * ppsidOwner,
  145.     OUT PSID                 * ppsidGroup,
  146.     OUT PACL                 * ppDacl,
  147.     OUT PACL                 * ppSacl,
  148.     OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
  149.     );
  150. #ifdef UNICODE
  151. #define GetNamedSecurityInfo  GetNamedSecurityInfoW
  152. #else
  153. #define GetNamedSecurityInfo  GetNamedSecurityInfoA
  154. #endif // !UNICODE
  155. WINADVAPI
  156. DWORD
  157. WINAPI
  158. GetSecurityInfo(
  159.     IN  HANDLE                 handle,
  160.     IN  SE_OBJECT_TYPE         ObjectType,
  161.     IN  SECURITY_INFORMATION   SecurityInfo,
  162.     OUT PSID                 * ppsidOwner,
  163.     OUT PSID                 * ppsidGroup,
  164.     OUT PACL                 * ppDacl,
  165.     OUT PACL                 * ppSacl,
  166.     OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
  167.     );
  168. WINADVAPI
  169. DWORD
  170. WINAPI
  171. SetNamedSecurityInfoA(
  172.     IN LPSTR               pObjectName,
  173.     IN SE_OBJECT_TYPE        ObjectType,
  174.     IN SECURITY_INFORMATION  SecurityInfo,
  175.     IN PSID                  psidOwner,
  176.     IN PSID                  psidGroup,
  177.     IN PACL                  pDacl,
  178.     IN PACL                  pSacl
  179.     );
  180. WINADVAPI
  181. DWORD
  182. WINAPI
  183. SetNamedSecurityInfoW(
  184.     IN LPWSTR               pObjectName,
  185.     IN SE_OBJECT_TYPE        ObjectType,
  186.     IN SECURITY_INFORMATION  SecurityInfo,
  187.     IN PSID                  psidOwner,
  188.     IN PSID                  psidGroup,
  189.     IN PACL                  pDacl,
  190.     IN PACL                  pSacl
  191.     );
  192. #ifdef UNICODE
  193. #define SetNamedSecurityInfo  SetNamedSecurityInfoW
  194. #else
  195. #define SetNamedSecurityInfo  SetNamedSecurityInfoA
  196. #endif // !UNICODE
  197. WINADVAPI
  198. DWORD
  199. WINAPI
  200. SetSecurityInfo(
  201.     IN HANDLE                handle,
  202.     IN SE_OBJECT_TYPE        ObjectType,
  203.     IN SECURITY_INFORMATION  SecurityInfo,
  204.     IN PSID                  psidOwner,
  205.     IN PSID                  psidGroup,
  206.     IN PACL                  pDacl,
  207.     IN PACL                  pSacl
  208.     );
  209. WINADVAPI
  210. DWORD
  211. WINAPI
  212. GetInheritanceSourceA(
  213.     IN  LPSTR                  pObjectName,
  214.     IN  SE_OBJECT_TYPE           ObjectType,
  215.     IN  SECURITY_INFORMATION     SecurityInfo,
  216.     IN  BOOL                     Container,
  217.     IN  GUID                  ** pObjectClassGuids OPTIONAL,
  218.     IN  DWORD                    GuidCount,
  219.     IN  PACL                     pAcl,
  220.     IN  PFN_OBJECT_MGR_FUNCTS    pfnArray OPTIONAL,
  221.     IN  PGENERIC_MAPPING         pGenericMapping,
  222.     OUT PINHERITED_FROMA         pInheritArray
  223.     );
  224. WINADVAPI
  225. DWORD
  226. WINAPI
  227. GetInheritanceSourceW(
  228.     IN  LPWSTR                  pObjectName,
  229.     IN  SE_OBJECT_TYPE           ObjectType,
  230.     IN  SECURITY_INFORMATION     SecurityInfo,
  231.     IN  BOOL                     Container,
  232.     IN  GUID                  ** pObjectClassGuids OPTIONAL,
  233.     IN  DWORD                    GuidCount,
  234.     IN  PACL                     pAcl,
  235.     IN  PFN_OBJECT_MGR_FUNCTS    pfnArray OPTIONAL,
  236.     IN  PGENERIC_MAPPING         pGenericMapping,
  237.     OUT PINHERITED_FROMW         pInheritArray
  238.     );
  239. #ifdef UNICODE
  240. #define GetInheritanceSource  GetInheritanceSourceW
  241. #else
  242. #define GetInheritanceSource  GetInheritanceSourceA
  243. #endif // !UNICODE
  244. WINADVAPI
  245. DWORD
  246. WINAPI
  247. FreeInheritedFromArray(
  248.     IN PINHERITED_FROMW pInheritArray,
  249.     IN USHORT AceCnt,
  250.     IN PFN_OBJECT_MGR_FUNCTS   pfnArray OPTIONAL
  251.     );
  252. WINADVAPI
  253. DWORD
  254. WINAPI
  255. TreeResetNamedSecurityInfoA(
  256.     IN LPSTR              pObjectName,
  257.     IN SE_OBJECT_TYPE       ObjectType,
  258.     IN SECURITY_INFORMATION SecurityInfo,
  259.     IN PSID                 pOwner,
  260.     IN PSID                 pGroup,
  261.     IN PACL                 pDacl,
  262.     IN PACL                 pSacl,
  263.     IN BOOL                 KeepExplicit,
  264.     IN FN_PROGRESS          fnProgress,
  265.     IN PROG_INVOKE_SETTING  ProgressInvokeSetting,
  266.     IN PVOID                Args
  267.     );
  268. WINADVAPI
  269. DWORD
  270. WINAPI
  271. TreeResetNamedSecurityInfoW(
  272.     IN LPWSTR              pObjectName,
  273.     IN SE_OBJECT_TYPE       ObjectType,
  274.     IN SECURITY_INFORMATION SecurityInfo,
  275.     IN PSID                 pOwner,
  276.     IN PSID                 pGroup,
  277.     IN PACL                 pDacl,
  278.     IN PACL                 pSacl,
  279.     IN BOOL                 KeepExplicit,
  280.     IN FN_PROGRESS          fnProgress,
  281.     IN PROG_INVOKE_SETTING  ProgressInvokeSetting,
  282.     IN PVOID                Args
  283.     );
  284. #ifdef UNICODE
  285. #define TreeResetNamedSecurityInfo  TreeResetNamedSecurityInfoW
  286. #else
  287. #define TreeResetNamedSecurityInfo  TreeResetNamedSecurityInfoA
  288. #endif // !UNICODE
  289. //----------------------------------------------------------------------------
  290. // The following API are provided for trusted servers to use to
  291. // implement access control on their own objects.
  292. //----------------------------------------------------------------------------
  293. WINADVAPI
  294. DWORD
  295. WINAPI
  296. BuildSecurityDescriptorA(
  297.     IN  PTRUSTEE_A              pOwner,
  298.     IN  PTRUSTEE_A              pGroup,
  299.     IN  ULONG                   cCountOfAccessEntries,
  300.     IN  PEXPLICIT_ACCESS_A      pListOfAccessEntries,
  301.     IN  ULONG                   cCountOfAuditEntries,
  302.     IN  PEXPLICIT_ACCESS_A      pListOfAuditEntries,
  303.     IN  PSECURITY_DESCRIPTOR    pOldSD,
  304.     OUT PULONG                  pSizeNewSD,
  305.     OUT PSECURITY_DESCRIPTOR  * pNewSD
  306.     );
  307. WINADVAPI
  308. DWORD
  309. WINAPI
  310. BuildSecurityDescriptorW(
  311.     IN  PTRUSTEE_W              pOwner,
  312.     IN  PTRUSTEE_W              pGroup,
  313.     IN  ULONG                   cCountOfAccessEntries,
  314.     IN  PEXPLICIT_ACCESS_W      pListOfAccessEntries,
  315.     IN  ULONG                   cCountOfAuditEntries,
  316.     IN  PEXPLICIT_ACCESS_W      pListOfAuditEntries,
  317.     IN  PSECURITY_DESCRIPTOR    pOldSD,
  318.     OUT PULONG                  pSizeNewSD,
  319.     OUT PSECURITY_DESCRIPTOR  * pNewSD
  320.     );
  321. #ifdef UNICODE
  322. #define BuildSecurityDescriptor  BuildSecurityDescriptorW
  323. #else
  324. #define BuildSecurityDescriptor  BuildSecurityDescriptorA
  325. #endif // !UNICODE
  326. WINADVAPI
  327. DWORD
  328. WINAPI
  329. LookupSecurityDescriptorPartsA(
  330.     OUT PTRUSTEE_A         * pOwner,
  331.     OUT PTRUSTEE_A         * pGroup,
  332.     OUT PULONG               cCountOfAccessEntries,
  333.     OUT PEXPLICIT_ACCESS_A * pListOfAccessEntries,
  334.     OUT PULONG               cCountOfAuditEntries,
  335.     OUT PEXPLICIT_ACCESS_A * pListOfAuditEntries,
  336.     IN  PSECURITY_DESCRIPTOR pSD
  337.     );
  338. WINADVAPI
  339. DWORD
  340. WINAPI
  341. LookupSecurityDescriptorPartsW(
  342.     OUT PTRUSTEE_W         * pOwner,
  343.     OUT PTRUSTEE_W         * pGroup,
  344.     OUT PULONG               cCountOfAccessEntries,
  345.     OUT PEXPLICIT_ACCESS_W * pListOfAccessEntries,
  346.     OUT PULONG               cCountOfAuditEntries,
  347.     OUT PEXPLICIT_ACCESS_W * pListOfAuditEntries,
  348.     IN  PSECURITY_DESCRIPTOR pSD
  349.     );
  350. #ifdef UNICODE
  351. #define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsW
  352. #else
  353. #define LookupSecurityDescriptorParts  LookupSecurityDescriptorPartsA
  354. #endif // !UNICODE
  355. //----------------------------------------------------------------------------
  356. // The following helper API are provided for building
  357. // access control structures.
  358. //----------------------------------------------------------------------------
  359. WINADVAPI
  360. VOID
  361. WINAPI
  362. BuildExplicitAccessWithNameA(
  363.     IN OUT PEXPLICIT_ACCESS_A  pExplicitAccess,
  364.     IN     LPSTR             pTrusteeName,
  365.     IN     DWORD               AccessPermissions,
  366.     IN     ACCESS_MODE         AccessMode,
  367.     IN     DWORD               Inheritance
  368.     );
  369. WINADVAPI
  370. VOID
  371. WINAPI
  372. BuildExplicitAccessWithNameW(
  373.     IN OUT PEXPLICIT_ACCESS_W  pExplicitAccess,
  374.     IN     LPWSTR             pTrusteeName,
  375.     IN     DWORD               AccessPermissions,
  376.     IN     ACCESS_MODE         AccessMode,
  377.     IN     DWORD               Inheritance
  378.     );
  379. #ifdef UNICODE
  380. #define BuildExplicitAccessWithName  BuildExplicitAccessWithNameW
  381. #else
  382. #define BuildExplicitAccessWithName  BuildExplicitAccessWithNameA
  383. #endif // !UNICODE
  384. WINADVAPI
  385. VOID
  386. WINAPI
  387. BuildImpersonateExplicitAccessWithNameA(
  388.     IN OUT PEXPLICIT_ACCESS_A  pExplicitAccess,
  389.     IN     LPSTR             pTrusteeName,
  390.     IN     PTRUSTEE_A          pTrustee,
  391.     IN     DWORD               AccessPermissions,
  392.     IN     ACCESS_MODE         AccessMode,
  393.     IN     DWORD               Inheritance
  394.     );
  395. WINADVAPI
  396. VOID
  397. WINAPI
  398. BuildImpersonateExplicitAccessWithNameW(
  399.     IN OUT PEXPLICIT_ACCESS_W  pExplicitAccess,
  400.     IN     LPWSTR             pTrusteeName,
  401.     IN     PTRUSTEE_W          pTrustee,
  402.     IN     DWORD               AccessPermissions,
  403.     IN     ACCESS_MODE         AccessMode,
  404.     IN     DWORD               Inheritance
  405.     );
  406. #ifdef UNICODE
  407. #define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameW
  408. #else
  409. #define BuildImpersonateExplicitAccessWithName  BuildImpersonateExplicitAccessWithNameA
  410. #endif // !UNICODE
  411. WINADVAPI
  412. VOID
  413. WINAPI
  414. BuildTrusteeWithNameA(
  415.     IN OUT PTRUSTEE_A  pTrustee,
  416.         IN     LPSTR     pName
  417.     );
  418. WINADVAPI
  419. VOID
  420. WINAPI
  421. BuildTrusteeWithNameW(
  422.     IN OUT PTRUSTEE_W  pTrustee,
  423.         IN     LPWSTR     pName
  424.     );
  425. #ifdef UNICODE
  426. #define BuildTrusteeWithName  BuildTrusteeWithNameW
  427. #else
  428. #define BuildTrusteeWithName  BuildTrusteeWithNameA
  429. #endif // !UNICODE
  430. WINADVAPI
  431. VOID
  432. WINAPI
  433. BuildImpersonateTrusteeA(
  434.     IN OUT PTRUSTEE_A  pTrustee,
  435.     IN     PTRUSTEE_A  pImpersonateTrustee
  436.     );
  437. WINADVAPI
  438. VOID
  439. WINAPI
  440. BuildImpersonateTrusteeW(
  441.     IN OUT PTRUSTEE_W  pTrustee,
  442.     IN     PTRUSTEE_W  pImpersonateTrustee
  443.     );
  444. #ifdef UNICODE
  445. #define BuildImpersonateTrustee  BuildImpersonateTrusteeW
  446. #else
  447. #define BuildImpersonateTrustee  BuildImpersonateTrusteeA
  448. #endif // !UNICODE
  449. WINADVAPI
  450. VOID
  451. WINAPI
  452. BuildTrusteeWithSidA(
  453.     IN OUT PTRUSTEE_A  pTrustee,
  454.     IN     PSID        pSid
  455.     );
  456. WINADVAPI
  457. VOID
  458. WINAPI
  459. BuildTrusteeWithSidW(
  460.     IN OUT PTRUSTEE_W  pTrustee,
  461.     IN     PSID        pSid
  462.     );
  463. #ifdef UNICODE
  464. #define BuildTrusteeWithSid  BuildTrusteeWithSidW
  465. #else
  466. #define BuildTrusteeWithSid  BuildTrusteeWithSidA
  467. #endif // !UNICODE
  468. WINADVAPI
  469. VOID
  470. WINAPI
  471. BuildTrusteeWithObjectsAndSidA(
  472.     IN OUT PTRUSTEE_A         pTrustee,
  473.     IN     POBJECTS_AND_SID   pObjSid,
  474.     IN     GUID             * pObjectGuid,
  475.     IN     GUID             * pInheritedObjectGuid,
  476.     IN     PSID               pSid
  477.     );
  478. WINADVAPI
  479. VOID
  480. WINAPI
  481. BuildTrusteeWithObjectsAndSidW(
  482.     IN OUT PTRUSTEE_W         pTrustee,
  483.     IN     POBJECTS_AND_SID   pObjSid,
  484.     IN     GUID             * pObjectGuid,
  485.     IN     GUID             * pInheritedObjectGuid,
  486.     IN     PSID               pSid
  487.     );
  488. #ifdef UNICODE
  489. #define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidW
  490. #else
  491. #define BuildTrusteeWithObjectsAndSid  BuildTrusteeWithObjectsAndSidA
  492. #endif // !UNICODE
  493. WINADVAPI
  494. VOID
  495. WINAPI
  496. BuildTrusteeWithObjectsAndNameA(
  497.     IN OUT PTRUSTEE_A          pTrustee,
  498.     IN     POBJECTS_AND_NAME_A pObjName,
  499.     IN     SE_OBJECT_TYPE      ObjectType,
  500.     IN     LPSTR             ObjectTypeName,
  501.     IN     LPSTR             InheritedObjectTypeName,
  502.     IN     LPSTR             Name
  503.     );
  504. WINADVAPI
  505. VOID
  506. WINAPI
  507. BuildTrusteeWithObjectsAndNameW(
  508.     IN OUT PTRUSTEE_W          pTrustee,
  509.     IN     POBJECTS_AND_NAME_W pObjName,
  510.     IN     SE_OBJECT_TYPE      ObjectType,
  511.     IN     LPWSTR             ObjectTypeName,
  512.     IN     LPWSTR             InheritedObjectTypeName,
  513.     IN     LPWSTR             Name
  514.     );
  515. #ifdef UNICODE
  516. #define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameW
  517. #else
  518. #define BuildTrusteeWithObjectsAndName  BuildTrusteeWithObjectsAndNameA
  519. #endif // !UNICODE
  520. WINADVAPI
  521. LPSTR
  522. WINAPI
  523. GetTrusteeNameA(
  524.     IN PTRUSTEE_A  pTrustee
  525.     );
  526. WINADVAPI
  527. LPWSTR
  528. WINAPI
  529. GetTrusteeNameW(
  530.     IN PTRUSTEE_W  pTrustee
  531.     );
  532. #ifdef UNICODE
  533. #define GetTrusteeName  GetTrusteeNameW
  534. #else
  535. #define GetTrusteeName  GetTrusteeNameA
  536. #endif // !UNICODE
  537. WINADVAPI
  538. TRUSTEE_TYPE
  539. WINAPI
  540. GetTrusteeTypeA(
  541.     IN PTRUSTEE_A  pTrustee
  542.     );
  543. WINADVAPI
  544. TRUSTEE_TYPE
  545. WINAPI
  546. GetTrusteeTypeW(
  547.     IN PTRUSTEE_W  pTrustee
  548.     );
  549. #ifdef UNICODE
  550. #define GetTrusteeType  GetTrusteeTypeW
  551. #else
  552. #define GetTrusteeType  GetTrusteeTypeA
  553. #endif // !UNICODE
  554. WINADVAPI
  555. TRUSTEE_FORM
  556. WINAPI
  557. GetTrusteeFormA(
  558.     IN PTRUSTEE_A  pTrustee
  559.     );
  560. WINADVAPI
  561. TRUSTEE_FORM
  562. WINAPI
  563. GetTrusteeFormW(
  564.     IN PTRUSTEE_W  pTrustee
  565.     );
  566. #ifdef UNICODE
  567. #define GetTrusteeForm  GetTrusteeFormW
  568. #else
  569. #define GetTrusteeForm  GetTrusteeFormA
  570. #endif // !UNICODE
  571. WINADVAPI
  572. MULTIPLE_TRUSTEE_OPERATION
  573. WINAPI
  574. GetMultipleTrusteeOperationA(
  575.     IN PTRUSTEE_A  pTrustee
  576.     );
  577. WINADVAPI
  578. MULTIPLE_TRUSTEE_OPERATION
  579. WINAPI
  580. GetMultipleTrusteeOperationW(
  581.     IN PTRUSTEE_W  pTrustee
  582.     );
  583. #ifdef UNICODE
  584. #define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationW
  585. #else
  586. #define GetMultipleTrusteeOperation  GetMultipleTrusteeOperationA
  587. #endif // !UNICODE
  588. WINADVAPI
  589. PTRUSTEE_A
  590. WINAPI
  591. GetMultipleTrusteeA(
  592.     IN PTRUSTEE_A  pTrustee
  593.     );
  594. WINADVAPI
  595. PTRUSTEE_W
  596. WINAPI
  597. GetMultipleTrusteeW(
  598.     IN PTRUSTEE_W  pTrustee
  599.     );
  600. #ifdef UNICODE
  601. #define GetMultipleTrustee  GetMultipleTrusteeW
  602. #else
  603. #define GetMultipleTrustee  GetMultipleTrusteeA
  604. #endif // !UNICODE
  605. //
  606. // Temporary requirement for the technology preview, no longer required
  607. //
  608. #define AccProvInit(err)
  609. #ifdef __cplusplus
  610. }
  611. #endif
  612. #endif // __ACCESS_CONTROL_API__