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.

1046 lines
19 KiB

  1. //>-------------------------------------------------------------------------------<
  2. //
  3. // File: Actlapi.h
  4. //
  5. // Synopsis: Access Control and Authentication API's:
  6. //
  7. // UiGetAccountRights,
  8. // UiGetValidationInfo
  9. //
  10. // Sysop API's for accout/group/token maintenance in security DB:
  11. //
  12. // AddAcct
  13. // UpdateAcct
  14. // DeleteAcct
  15. // DeleteAcctByLogin
  16. // SetPassword
  17. // GetHandle
  18. // GetAcctInfo
  19. // GetAcctPlan
  20. //
  21. // EnumUserGroups
  22. // EnumUserGroupsEx
  23. // GetUserGroupDetails
  24. // FindUserGroup
  25. // AddUserGroup
  26. // UpdateUserGroup
  27. // DeleteUserGroup
  28. // EnumGroupMembers
  29. // EnumGroupMembersEx
  30. // EnumGroupMembersExpire
  31. // EnumGroupMembersExpireEx
  32. // AddAcctToGroup
  33. // AddAcctToGroupExpire
  34. // RemoveAcctFromGroup
  35. // RemoveExpiredAcctsFromGroup
  36. //
  37. // EnumTokens
  38. // EnumTokensEx
  39. // CreateToken
  40. // ModifyToken
  41. // DeleteToken
  42. // EnumAcctPrivateTokens
  43. // EnumAcctPrivateTokensEx
  44. // EnumGroupsWithToken
  45. // EnumGroupsWithTokenEx
  46. // EnumGroupsWithTokenExpire
  47. // EnumGroupsWithTokenExpireEx
  48. // AddGroupToToken
  49. // AddGroupToTokenExpire
  50. // EnumAcctsWithToken
  51. // RemoveGroupFromToken
  52. // RemoveExpiredGroupsFromToken
  53. // EnumAcctsWithToken
  54. // EnumAcctsWithTokenEx
  55. // EnumAcctsWithTokenExpire
  56. // EnumAcctsWithTokenExpireEx
  57. // AddAcctToToken
  58. // AddAcctToTokenExpire
  59. // RemoveAcctFromToken
  60. // RemoveExpiredAcctsFromToken
  61. // GetTokenDetails
  62. // TokenIdFromTokenName
  63. // UiIsAccountInGroup
  64. // EnumExcludedAccts
  65. // EnumExcludedAcctsEx
  66. // AddExclusion
  67. // AddExclusionEx
  68. // RemoveExclusion
  69. // GetMaxTokenId
  70. //
  71. // AddAccessPlan
  72. // UpdateAccessPlan
  73. // DeleteAccessPlan
  74. // EnumAccessPlans
  75. // EnumAccessPlansEx
  76. //
  77. // SearchAcctsWithToken
  78. // SearchExcludedAcctsWithToken
  79. // SearchGroupMembers
  80. // SearchGroupsWithToken
  81. // SearchTokens
  82. // SearchUserGroups
  83. // TotalAcctsWithToken
  84. // TotalExcludedAcctsWithToken
  85. // TotalGroupMembers
  86. // TotalGroupsWithToken
  87. // TotalTokens
  88. // TotalUserGroups
  89. //
  90. // History: DanielLi Ported to 2.x tree 03/22/96
  91. //
  92. // Copyright (C) 1994-1996 Microsoft Corporation
  93. // All rights reserved
  94. //
  95. //>-------------------------------------------------------------------------------<
  96. #if !defined(__ACTLAPI_H__)
  97. #define __ACTLAPI_H__
  98. #include <acsctl.h>
  99. #if !defined(_ACTL_DLL_DEFINED)
  100. #if defined(WIN32)
  101. #if defined(_ACTLDLL)
  102. #define ActlDLL DllExport __stdcall
  103. #else
  104. #define ActlDLL DllImport __stdcall
  105. #endif
  106. #else
  107. #define ActlDLL
  108. #endif
  109. #define _ACTL_DLL_DEFINED
  110. #endif
  111. //--------------------------------------------------------------------------------
  112. //
  113. // Adjustable parameters
  114. //
  115. //--------------------------------------------------------------------------------
  116. typedef struct _ACCESS_TUNING
  117. {
  118. //
  119. // max number of user caches; default is: 100K
  120. //
  121. DWORD dwMaxUserCaches;
  122. //
  123. // the beginning instance size of CPool list, in the power of 2, so, the actual
  124. // size is : 2^dwFirstCPool; default is: 7 (128 bytes)
  125. //
  126. DWORD dwFirstPoolSize;
  127. //
  128. // the number of CPool in the CPool list; default is: 5
  129. //
  130. DWORD dwPoolSteps;
  131. } ACCESS_TUNING, *PACCESS_TUNING;
  132. //--------------------------------------------------------------------------------
  133. //
  134. // Performance counters
  135. //
  136. //--------------------------------------------------------------------------------
  137. typedef struct _ACCESS_STATISTICS
  138. {
  139. //
  140. // number of times UiGetAccountRights got called
  141. //
  142. LONG cGetAccountRights;
  143. LONG cGetAccountRightsRate;
  144. //
  145. // number of times UiGetAccountRights failed
  146. //
  147. LONG cGetAccountRightsFailures;
  148. LONG cGetAccountRightsFailuresRate;
  149. //
  150. // number of times pass-through queries w/o hitting cache
  151. //
  152. LONG cGetAccountRightsPassThru;
  153. LONG cGetAccountRightsPassThruRate;
  154. #if 0
  155. //
  156. // number of times UiGetAccountRigts failed due to query timeout
  157. //
  158. LONG cGetAccountRightsTimeout;
  159. LONG cGetValidationInfo;
  160. LONG cGetValidationInfoFailures;
  161. //
  162. // number of times Security DB query (sp_get_tokens_and_groups) is issued to
  163. // refresh the user cache
  164. //
  165. LONG cNumDBQueriesForCache;
  166. //
  167. // number of times the user cache is added into the cache pool
  168. //
  169. LONG cNumUserCacheAdded;
  170. //
  171. // number of times the user cache is released from the cache pool
  172. //
  173. LONG cNumUserCacheReleased;
  174. //
  175. // number of times CDBUserCache::operator new() got called
  176. //
  177. LONG cNewUserCache;
  178. //
  179. // number of times CDBUserCache::operator delete() got called
  180. //
  181. LONG cDeleteUserCache;
  182. //
  183. // number of times token-group cache allocated (one token-group cache per CDBUserCache)
  184. //
  185. LONG cAllocTokenGroupCache;
  186. //
  187. // number of token-group cache allocated (one token-group cache per CDBUserCache)
  188. //
  189. LONG cFreeTokenGroupCache;
  190. //
  191. // number of times the plan list is refreshed (GetPlans)
  192. //
  193. LONG cNumPlanListRefreshed;
  194. //
  195. // number of times GetPlanRightsOnToken is called
  196. //
  197. LONG cGetPlanRightsOnToken;
  198. //
  199. // number of AddAcct are called
  200. //
  201. LONG cAddAcct;
  202. //
  203. // number of AddAcct failed
  204. //
  205. LONG cAddAcctFailures;
  206. //
  207. // number of UpdateAcct are called
  208. //
  209. LONG cUpdateAcct;
  210. //
  211. // number of UpdateAcct failed
  212. //
  213. LONG cUpdateAcctFailures;
  214. LONG cDeleteAcct;
  215. LONG cDeleteAcctFailures;
  216. LONG cSetPassword;
  217. LONG cSetPasswordFailures;
  218. LONG cGetHandle;
  219. LONG cGetHandleFailures;
  220. LONG cAddAcctToToken;
  221. LONG cAddAcctToTokenFailures;
  222. LONG cRemoveAcctFromToken;
  223. LONG cRemoveAcctFromTokenFailures;
  224. LONG cGetTokenDetails;
  225. LONG cGetTokenDetailsFailures;
  226. LONG cEnumAcctPrivateTokens;
  227. LONG cEnumAcctPrivateTokensFailures;
  228. LONG cGetAcctInfo;
  229. LONG cGetAcctInfoFailures;
  230. #endif
  231. } ACCESS_STATISTICS, *PACCESS_STATISTICS;
  232. #define INC_ACCESS_COUNTER(counter) if (g_pCntrs) \
  233. InterlockedIncrement((LPLONG)&g_pCntrs->##counter)
  234. #define DEC_ACCESS_COUNTER(counter) if (g_pCntrs) \
  235. InterlockedDecrement((LPLONG)&g_pCntrs->##counter)
  236. //
  237. // Structures to manipulate token, group, account info
  238. //
  239. typedef struct _ACCOUNT_INFO
  240. {
  241. HACCT hAcct;
  242. CHAR szLoginName[AC_MAX_LOGIN_NAME_LENGTH+1];
  243. CHAR szDomainName[AC_MAX_DOMAIN_NAME_LENGTH+1]; // reserved
  244. CHAR szFirstName[AC_MAX_FIRST_NAME_LENGTH+1];
  245. CHAR szLastName[AC_MAX_LAST_NAME_LENGTH+1];
  246. WORD wAcctType;
  247. CHAR szPassword[AC_MAX_PASSWORD_LENGTH+1];
  248. WORD wAcctStatus;
  249. SYSTEMTIME tmExpired;
  250. } ACCOUNT_INFO, *PACCOUNT_INFO;
  251. typedef struct _ACCOUNT_INFO_RIGHT
  252. {
  253. HACCT hAcct;
  254. CHAR szLoginName[AC_MAX_LOGIN_NAME_LENGTH+1];
  255. CHAR szFirstName[AC_MAX_FIRST_NAME_LENGTH+1];
  256. CHAR szLastName[AC_MAX_LAST_NAME_LENGTH+1];
  257. AR arRight;
  258. SYSTEMTIME tmExpired;
  259. } ACCOUNT_INFO_RIGHT, *PACCOUNT_INFO_RIGHT;
  260. typedef struct _USER_GROUP
  261. {
  262. HGROUP hGroup;
  263. CHAR szName[AC_MAX_GROUP_NAME_LENGTH];
  264. } USER_GROUP, *PUSER_GROUP;
  265. typedef struct _USER_GROUP_RIGHT
  266. {
  267. HGROUP hGroup;
  268. CHAR szName[AC_MAX_GROUP_NAME_LENGTH+1];
  269. AR arRight;
  270. SYSTEMTIME tmExpired;
  271. } USER_GROUP_RIGHT, *PUSER_GROUP_RIGHT;
  272. typedef struct _USER_GROUP_DETAILS
  273. {
  274. HGROUP hGroup;
  275. CHAR szName[AC_MAX_GROUP_NAME_LENGTH+1];
  276. TOKEN token;
  277. } USER_GROUP_DETAILS, *PUSER_GROUP_DETAILS;
  278. typedef struct _TOKEN_DETAILS
  279. {
  280. TOKEN token;
  281. CHAR szName[AC_MAX_TOKEN_NAME_LENGTH+1];
  282. CHAR szDesc[AC_MAX_TOKEN_DESC_LENGTH+1];
  283. HGROUP hOwnerGroup;
  284. } TOKEN_DETAILS, *PTOKEN_DETAILS;
  285. typedef struct _TOKEN_RIGHT
  286. {
  287. TOKEN token;
  288. AR arRight;
  289. SYSTEMTIME tmExpired;
  290. } TOKEN_RIGHT, *PTOKEN_RIGHT;
  291. typedef struct _ACCESS_PLAN
  292. {
  293. CHAR szName[AC_MAX_GROUP_NAME_LENGTH+1];
  294. HGROUP hGroup; // group id used as plan id
  295. HACCT hAcct; // proxy account for this group
  296. HACCT hOwner; // reserved for owner id
  297. TOKEN token;
  298. } ACCESS_PLAN, *PACCESS_PLAN;
  299. //--------------------------------------------------------------------------------
  300. //
  301. // Prototypes of caller-defined callback functions passed into EnumXXXXEx API's
  302. //
  303. //--------------------------------------------------------------------------------
  304. typedef UINT (__cdecl *PGROUPENUMPROC)( PUSER_GROUP pGroup, LPARAM lParam );
  305. typedef UINT (__cdecl *PACCTENUMPROC)( PACCOUNT_INFO pAcct, LPARAM lParam );
  306. typedef UINT (__cdecl *PTOKENENUMPROC)( PTOKEN_DETAILS pToken, LPARAM lParam );
  307. typedef UINT (__cdecl *PTOKENRITENUMPROC)( PTOKEN_RIGHT pTokenRit, LPARAM lParam );
  308. typedef UINT (__cdecl *PACCTRITENUMPROC)( PACCOUNT_INFO_RIGHT pAcctRit, LPARAM lParam );
  309. typedef UINT (__cdecl *PGROUPRITENUMPROC)( PUSER_GROUP_RIGHT pGroupRit, LPARAM lParam );
  310. typedef UINT (__cdecl *PPLANENUMPROC)( PACCESS_PLAN pPlan, LPARAM lParam );
  311. extern "C"
  312. {
  313. BOOL ActlDLL FInitAccessLib(BOOL fCacheNeeded);
  314. VOID ActlDLL TerminateAccessLib();
  315. UINT ActlDLL UiResetAccessTuningBlock();
  316. VOID ActlDLL GetDefaultAccessTuningParam(PACCESS_TUNING pTuning);
  317. UINT ActlDLL UiSetAccessTuningBlock(PACCESS_TUNING pTuning);
  318. PACCESS_STATISTICS ActlDLL
  319. GetAccessPerfmonBlock();
  320. UINT ActlDLL SetAccessPerfmonBlock(PACCESS_STATISTICS pStat);
  321. UINT ActlDLL UiRegisterAccessDB
  322. (
  323. CHAR *szServerName,
  324. CHAR *szDBName,
  325. CHAR *szLogin,
  326. CHAR *szPassword,
  327. CHAR *szQryServerName,
  328. CHAR *szQryDBName,
  329. CHAR *szQryLogin,
  330. CHAR *szQryPassword
  331. );
  332. UINT ActlDLL UiGetAccountRights(HACCT hAcct, TOKEN dwToken, AR *pRights);
  333. UINT ActlDLL UiGetValidationInfo
  334. (
  335. CHAR *szLoginName,
  336. CHAR *szDomain,
  337. HACCT *phAcct,
  338. WORD *pwAcctType,
  339. CHAR *szPassword,
  340. WORD *pwStatus
  341. );
  342. VOID ActlDLL ReleaseUserCache(HACCT hAcct);
  343. VOID ActlDLL ReleaseGroupInCache(HGROUP hGroup);
  344. UINT ActlDLL
  345. AddAcct
  346. (
  347. PACCOUNT_INFO pAcctInfo
  348. );
  349. UINT ActlDLL
  350. UpdateAcct
  351. (
  352. PACCOUNT_INFO pAcctInfo
  353. );
  354. UINT ActlDLL
  355. DeleteAcct
  356. (
  357. HACCT hAcct
  358. );
  359. UINT ActlDLL
  360. DeleteAcctByLogin
  361. (
  362. CHAR *szLoginName
  363. );
  364. UINT ActlDLL
  365. SetPassword
  366. (
  367. HACCT hAcct,
  368. PCHAR szOldPassword,
  369. PCHAR szNewPassword
  370. );
  371. UINT ActlDLL
  372. SetPasswordAdmin
  373. (
  374. HACCT hAcct,
  375. PCHAR szNewPassword
  376. );
  377. UINT ActlDLL
  378. GetHandle
  379. (
  380. PCHAR szLoginName,
  381. PHACCT phAcct
  382. );
  383. UINT ActlDLL
  384. GetAcctInfo
  385. (
  386. HACCT hAcct,
  387. PACCOUNT_INFO pAcctInfo
  388. );
  389. UINT ActlDLL
  390. GetAcctPlan
  391. (
  392. HACCT hAcct,
  393. PACCESS_PLAN pPlan
  394. );
  395. UINT ActlDLL
  396. EnumUserGroups
  397. (
  398. PUSER_GROUP pGroups,
  399. DWORD cBuf,
  400. LPDWORD pcTotal,
  401. LPDWORD pcReturned
  402. );
  403. UINT ActlDLL
  404. EnumUserGroupsEx
  405. (
  406. PGROUPENUMPROC lpGroupEnumFunc,
  407. LPARAM lParam
  408. );
  409. UINT ActlDLL
  410. GetUserGroupDetails
  411. (
  412. HGROUP hGroup,
  413. PUSER_GROUP_DETAILS pDetails
  414. );
  415. UINT ActlDLL
  416. FindUserGroup
  417. (
  418. PSTR szName,
  419. PUSER_GROUP_DETAILS pDetails
  420. );
  421. UINT ActlDLL
  422. AddUserGroup
  423. (
  424. PUSER_GROUP_DETAILS pDetails
  425. );
  426. UINT ActlDLL
  427. UpdateUserGroup
  428. (
  429. PUSER_GROUP_DETAILS pDetails
  430. );
  431. UINT ActlDLL
  432. DeleteUserGroup
  433. (
  434. HGROUP hGroup
  435. );
  436. UINT ActlDLL
  437. EnumGroupMembers
  438. (
  439. HGROUP hGroup,
  440. PACCOUNT_INFO pAccts,
  441. DWORD cBuf,
  442. LPDWORD pcTotal,
  443. LPDWORD pcReturned
  444. );
  445. UINT ActlDLL
  446. EnumGroupMembersEx
  447. (
  448. HGROUP hGroup,
  449. PACCTENUMPROC lpAcctEnumFunc,
  450. LPARAM lParam
  451. );
  452. UINT ActlDLL
  453. EnumGroupMembersExpire
  454. (
  455. HGROUP hGroup,
  456. LPSYSTEMTIME lptmExpired,
  457. PACCOUNT_INFO pAccts,
  458. DWORD cBuf,
  459. LPDWORD pcTotal,
  460. LPDWORD pcReturned
  461. );
  462. UINT ActlDLL
  463. EnumGroupMembersExpireEx
  464. (
  465. HGROUP hGroup,
  466. LPSYSTEMTIME lptmExpired,
  467. PACCTENUMPROC lpAcctEnumFunc,
  468. LPARAM lParam
  469. );
  470. UINT ActlDLL
  471. AddAcctToGroup
  472. (
  473. HGROUP hGroup,
  474. HACCT hAcct
  475. );
  476. UINT ActlDLL
  477. AddAcctToGroupExpire
  478. (
  479. HGROUP hGroup,
  480. HACCT hAcct,
  481. LPSYSTEMTIME lptmExpired
  482. );
  483. UINT ActlDLL
  484. RemoveAcctFromGroup
  485. (
  486. HGROUP hGroup,
  487. HACCT hAcct
  488. );
  489. UINT ActlDLL
  490. RemoveExpiredAcctsFromGroup
  491. (
  492. HGROUP hGroup
  493. );
  494. UINT ActlDLL
  495. EnumTokens
  496. (
  497. PTOKEN_DETAILS pTokens,
  498. DWORD cBuf,
  499. LPDWORD pcTotal,
  500. LPDWORD pcReturned
  501. );
  502. UINT ActlDLL
  503. EnumTokensEx
  504. (
  505. PTOKENENUMPROC lpTokenEnumFunc,
  506. LPARAM lParam
  507. );
  508. UINT ActlDLL
  509. CreateToken
  510. (
  511. PTOKEN_DETAILS pToken
  512. );
  513. UINT ActlDLL
  514. ModifyToken
  515. (
  516. PTOKEN_DETAILS pToken
  517. );
  518. UINT ActlDLL
  519. DeleteToken
  520. (
  521. TOKEN token
  522. );
  523. UINT ActlDLL
  524. EnumAcctPrivateTokens
  525. (
  526. HACCT hAcct,
  527. AR arRight,
  528. PTOKEN_RIGHT pTokenRit,
  529. DWORD cBuf,
  530. LPDWORD pcTotal,
  531. LPDWORD pcReturned
  532. );
  533. UINT ActlDLL
  534. EnumAcctPrivateTokensEx
  535. (
  536. HACCT hAcct,
  537. AR arRight,
  538. PTOKENRITENUMPROC lpTokenRitEnumFunc,
  539. LPARAM lParam
  540. );
  541. UINT ActlDLL
  542. EnumGroupsWithToken
  543. (
  544. TOKEN token,
  545. PUSER_GROUP_RIGHT pGroups,
  546. DWORD cBuf,
  547. LPDWORD pcTotal,
  548. LPDWORD pcReturned
  549. );
  550. UINT ActlDLL
  551. EnumGroupsWithTokenEx
  552. (
  553. TOKEN token,
  554. PGROUPRITENUMPROC lpGroupRitEnumFunc,
  555. LPARAM lParam
  556. );
  557. UINT ActlDLL
  558. EnumGroupsWithTokenExpire
  559. (
  560. TOKEN token,
  561. LPSYSTEMTIME lptmExpired,
  562. PUSER_GROUP_RIGHT pGroups,
  563. DWORD cBuf,
  564. LPDWORD pcTotal,
  565. LPDWORD pcReturned
  566. );
  567. UINT ActlDLL
  568. EnumGroupsWithTokenExpireEx
  569. (
  570. TOKEN token,
  571. LPSYSTEMTIME lptmExpired,
  572. PGROUPRITENUMPROC lpGroupRitEnumFunc,
  573. LPARAM lParam
  574. );
  575. UINT ActlDLL
  576. AddGroupToToken
  577. (
  578. TOKEN token,
  579. HGROUP hGroup,
  580. AR wRights
  581. );
  582. UINT ActlDLL
  583. AddGroupToTokenExpire
  584. (
  585. TOKEN token,
  586. HGROUP hGroup,
  587. AR wRights,
  588. LPSYSTEMTIME lptmExpired
  589. );
  590. UINT ActlDLL
  591. RemoveGroupFromToken
  592. (
  593. TOKEN token,
  594. HGROUP hGroup
  595. );
  596. UINT ActlDLL
  597. RemoveExpiredGroupsFromToken
  598. (
  599. TOKEN token
  600. );
  601. UINT ActlDLL
  602. EnumAcctsWithToken
  603. (
  604. TOKEN token,
  605. PACCOUNT_INFO_RIGHT pAcctRits,
  606. DWORD cBuf,
  607. LPDWORD pcTotal,
  608. LPDWORD pcReturned
  609. );
  610. UINT ActlDLL
  611. EnumAcctsWithTokenEx
  612. (
  613. TOKEN token,
  614. PACCTRITENUMPROC lpAcctRitEnumFunc,
  615. LPARAM lParam
  616. );
  617. UINT ActlDLL
  618. EnumAcctsWithTokenExpire
  619. (
  620. TOKEN token,
  621. LPSYSTEMTIME lptmExpired,
  622. PACCOUNT_INFO_RIGHT pAcctRits,
  623. DWORD cBuf,
  624. LPDWORD pcTotal,
  625. LPDWORD pcReturned
  626. );
  627. UINT ActlDLL
  628. EnumAcctsWithTokenExpireEx
  629. (
  630. TOKEN token,
  631. LPSYSTEMTIME lptmExpired,
  632. PACCTRITENUMPROC lpAcctRitEnumFunc,
  633. LPARAM lParam
  634. );
  635. UINT ActlDLL
  636. AddAcctToToken
  637. (
  638. TOKEN token,
  639. HACCT hAcct,
  640. AR arRights
  641. );
  642. UINT ActlDLL
  643. AddAcctToTokenExpire
  644. (
  645. TOKEN token,
  646. HACCT hAcct,
  647. AR arRights,
  648. LPSYSTEMTIME lptmExpired
  649. );
  650. UINT ActlDLL
  651. RemoveAcctFromToken
  652. (
  653. TOKEN token,
  654. HACCT hAcct
  655. );
  656. UINT ActlDLL
  657. RemoveExpiredAcctsFromToken
  658. (
  659. TOKEN token
  660. );
  661. UINT ActlDLL
  662. GetTokenDetails
  663. (
  664. TOKEN token,
  665. PTOKEN_DETAILS pDetails
  666. );
  667. UINT ActlDLL
  668. TokenIdFromTokenName
  669. (
  670. PSTR szName,
  671. TOKEN *ptoken
  672. );
  673. UINT ActlDLL
  674. UiIsAccountInGroup
  675. (
  676. HACCT hAcct,
  677. HGROUP hGroup,
  678. PBOOL pfRet
  679. );
  680. UINT ActlDLL
  681. EnumExcludedAccts
  682. (
  683. TOKEN token,
  684. PACCOUNT_INFO_RIGHT pAcctRits,
  685. DWORD cBuf,
  686. LPDWORD pcTotal,
  687. LPDWORD pcReturned
  688. );
  689. UINT ActlDLL
  690. EnumExcludedAcctsEx
  691. (
  692. TOKEN token,
  693. PACCTRITENUMPROC lpAcctRitEnumFunc,
  694. LPARAM lParam
  695. );
  696. UINT ActlDLL
  697. AddExclusion
  698. (
  699. TOKEN token,
  700. HACCT hAcct
  701. );
  702. UINT ActlDLL
  703. AddExclusionEx
  704. (
  705. TOKEN token,
  706. HACCT hAcct,
  707. AR arRights
  708. );
  709. UINT ActlDLL
  710. RemoveExclusion
  711. (
  712. TOKEN token,
  713. HACCT hAcct
  714. );
  715. UINT ActlDLL
  716. GetMaxTokenId
  717. (
  718. PTOKEN plMaxTokenId
  719. );
  720. BOOL ActlDLL
  721. IsLegalPassword
  722. (
  723. CHAR *szOldPassword,
  724. CHAR *szNewPassword
  725. );
  726. BOOL ActlDLL
  727. IsLegalLoginName
  728. (
  729. CHAR *szLoginName
  730. );
  731. UINT ActlDLL
  732. AddAccessPlan
  733. (
  734. PACCESS_PLAN pPlan
  735. );
  736. UINT ActlDLL
  737. DeleteAccessPlan
  738. (
  739. HGROUP hGroup
  740. );
  741. UINT ActlDLL
  742. UpdateAccessPlan
  743. (
  744. PACCESS_PLAN pPlan
  745. );
  746. UINT ActlDLL
  747. EnumAccessPlans
  748. (
  749. PACCESS_PLAN pPlan,
  750. DWORD cBuf,
  751. LPDWORD pcTotal,
  752. LPDWORD pcReturned
  753. );
  754. UINT ActlDLL
  755. EnumAccessPlansEx
  756. (
  757. PPLANENUMPROC lpPlanEnumFunc,
  758. LPARAM lParam
  759. );
  760. UINT ActlDLL
  761. SearchAccts
  762. (
  763. ACCOUNT_INFO *pAccts,
  764. DWORD cBuf,
  765. LPDWORD pcTotal,
  766. LPDWORD pcReturned,
  767. LPCSTR szLogin,
  768. BOOL fForward
  769. );
  770. UINT ActlDLL
  771. SearchUserGroups
  772. (
  773. PUSER_GROUP_DETAILS pGroupsDetails,
  774. DWORD cBuf,
  775. LPDWORD pcTotal,
  776. LPDWORD pcReturned,
  777. LPCSTR szGroupName,
  778. BOOL fForward
  779. );
  780. UINT ActlDLL
  781. SearchGroupMembers
  782. (
  783. HGROUP hGroup,
  784. ACCOUNT_INFO *pAccts,
  785. DWORD cBuf,
  786. LPDWORD pcTotal,
  787. LPDWORD pcReturned,
  788. LPCSTR szGroupMemberName,
  789. BOOL fForward
  790. );
  791. UINT ActlDLL
  792. SearchTokens
  793. (
  794. TOKEN_DETAILS *pTokenDetails,
  795. DWORD cBuf,
  796. LPDWORD pcTotal,
  797. LPDWORD pcReturned,
  798. LPCSTR szTokenName,
  799. BOOL fForward
  800. );
  801. UINT ActlDLL
  802. SearchGroupsWithToken
  803. (
  804. TOKEN token,
  805. USER_GROUP_RIGHT *pGroups,
  806. DWORD cBuf,
  807. LPDWORD pcTotal,
  808. LPDWORD pcReturned,
  809. LPCSTR szGroupName,
  810. BOOL fForward
  811. );
  812. UINT ActlDLL
  813. SearchAcctsWithToken
  814. (
  815. TOKEN token,
  816. ACCOUNT_INFO_RIGHT *pAcctRits,
  817. DWORD cBuf,
  818. LPDWORD pcTotal,
  819. LPDWORD pcReturned,
  820. LPCSTR szAcctName,
  821. BOOL fForward
  822. );
  823. UINT ActlDLL
  824. SearchExcludedAccts
  825. (
  826. TOKEN token,
  827. ACCOUNT_INFO_RIGHT *pAcctRits,
  828. DWORD cBuf,
  829. LPDWORD pcTotal,
  830. LPDWORD pcReturned,
  831. LPCSTR szAcctName,
  832. BOOL fForward
  833. );
  834. UINT ActlDLL
  835. SearchExcludedAcctsWithToken
  836. (
  837. TOKEN token,
  838. ACCOUNT_INFO_RIGHT *pAcctRits,
  839. DWORD cBuf,
  840. LPDWORD pcTotal,
  841. LPDWORD pcReturned,
  842. LPCSTR szAcctName,
  843. BOOL fForward
  844. );
  845. UINT ActlDLL
  846. SearchAccessPlans
  847. (
  848. PACCESS_PLAN pPlans,
  849. DWORD cBuf,
  850. LPDWORD pcTotal,
  851. LPDWORD pcReturned,
  852. LPCSTR szPlanName,
  853. BOOL fForward
  854. );
  855. UINT ActlDLL
  856. TotalAccts
  857. (
  858. LPDWORD pcTotal
  859. );
  860. UINT ActlDLL
  861. TotalUserGroups
  862. (
  863. LPDWORD pcTotal
  864. );
  865. UINT ActlDLL
  866. TotalGroupMembers
  867. (
  868. HGROUP hGroup,
  869. LPDWORD pcTotal
  870. );
  871. UINT ActlDLL
  872. TotalTokens
  873. (
  874. LPDWORD pcTotal
  875. );
  876. UINT ActlDLL
  877. TotalGroupsWithToken
  878. (
  879. TOKEN token,
  880. LPDWORD pcTotal
  881. );
  882. UINT ActlDLL
  883. TotalAcctsWithToken
  884. (
  885. TOKEN token,
  886. LPDWORD pcTotal
  887. );
  888. UINT ActlDLL
  889. TotalExcludedAccts
  890. (
  891. TOKEN token,
  892. LPDWORD pcTotal
  893. );
  894. UINT ActlDLL
  895. TotalExcludedAcctsWithToken
  896. (
  897. TOKEN token,
  898. LPDWORD pcTotal
  899. );
  900. } //----- end of extern "C" ------
  901. #endif // #if !defined(__ACTLAPI_H__)