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.

120 lines
3.6 KiB

  1. /**INC+**********************************************************************/
  2. /* Header: reglic.h */
  3. /* */
  4. /* Creates and installs Licensing regkey + ACLs..(During register server) */
  5. /* */
  6. /* Copyright(C) Microsoft Corporation 1998-2000 */
  7. /* */
  8. /****************************************************************************/
  9. #ifndef _REGLIC_H_
  10. #define _REGLIC_H_
  11. #ifndef OS_WINCE
  12. #include <aclapi.h>
  13. #include <seopaque.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif /* __cplusplus */
  17. BOOL SetupMSLicensingKey();
  18. BOOL CreateRegAddAcl(VOID);
  19. BOOL CreateAndWriteHWID(VOID);
  20. BOOL
  21. AddUsersGroupToObjectsSecurityDescriptor(
  22. HANDLE hObject,
  23. SE_OBJECT_TYPE ObjectType,
  24. ACCESS_MASK AccessMask,
  25. ACCESS_MODE AccessMode,
  26. DWORD Inheritance,
  27. BOOL fKeepExistingAcl
  28. );
  29. BOOL
  30. AddTSUsersGroupToObjectsSecurityDescriptor(
  31. HANDLE hObject,
  32. SE_OBJECT_TYPE ObjectType,
  33. ACCESS_MASK AccessMask,
  34. ACCESS_MODE AccessMode,
  35. DWORD Inheritance,
  36. BOOL fKeepExistingAcl
  37. );
  38. BOOL
  39. DeleteAceFromObjectsSecurityDescriptor(
  40. HANDLE hObject,
  41. SE_OBJECT_TYPE ObjectType,
  42. PSID pSid,
  43. DWORD dwAccess,
  44. ACCESS_MODE AccessMode,
  45. DWORD dwInheritance
  46. );
  47. BOOL
  48. DeleteUsersGroupAceFromObjectsSecurityDescriptor(
  49. HANDLE hObject,
  50. SE_OBJECT_TYPE ObjectType,
  51. ACCESS_MASK AccessMask,
  52. ACCESS_MODE AccessMode,
  53. DWORD Inheritance
  54. );
  55. #define MSLICENSING_REG_KEY _T("SOFTWARE\\Microsoft\\MSLicensing")
  56. #define MSLICENSING_STORE_SUBKEY _T("Store")
  57. #define MSLICENSING_HWID_KEY _T("SOFTWARE\\Microsoft\\MSLicensing\\HardwareID")
  58. #define MSLICENSING_HWID_VALUE _T("ClientHWID")
  59. #define ADVAPI_32_DLL _T("advapi32.dll")
  60. #define GET_SECURITY_INFO "GetSecurityInfo"
  61. #define GET_ACL_INFORMATION "GetAclInformation"
  62. #define ADD_ACE "AddAce"
  63. #define GET_ACE "GetAce"
  64. #define DELETE_ACE "DeleteAce"
  65. #define GET_LENGTH_SID "GetLengthSid"
  66. #define COPY_SID "CopySid"
  67. #define FREE_SID "FreeSid"
  68. #define EQUAL_SID "EqualSid"
  69. #define IS_VALID_SID "IsValidSid"
  70. #define SET_SECURITY_INFO "SetSecurityInfo"
  71. #define ALLOCATE_AND_INITITIALIZE_SID "AllocateAndInitializeSid"
  72. typedef BOOL (*PALLOCATEANDINITIALIZESID_FN)(PSID_IDENTIFIER_AUTHORITY,BYTE,
  73. DWORD,DWORD,DWORD,DWORD,
  74. DWORD,DWORD,DWORD,DWORD,
  75. PSID*);
  76. typedef DWORD (*PGETSECURITYINFO_FN)(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
  77. PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
  78. typedef BOOL (*PGETACLINFORMATION_FN)(PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS);
  79. typedef BOOL (*PADDACE_FN)(PACL, DWORD, DWORD, LPVOID, DWORD);
  80. typedef BOOL (*PGETACE_FN)(PACL, DWORD, LPVOID *);
  81. typedef BOOL (*PDELETEACE_FN)(PACL, DWORD);
  82. typedef DWORD (*PGETLENGTHSID_FN)(PSID);
  83. typedef BOOL (*PCOPYSID_FN)(DWORD, PSID, PSID);
  84. typedef BOOL (*PEQUALSID_FN)(PSID, PSID);
  85. typedef DWORD (*PSETSECURITYINFO_FN)(HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
  86. PSID, PSID, PACL, PACL);
  87. typedef DWORD (*PISVALIDSID_FN)(PSID);
  88. typedef PVOID (*PFREESID_FN)(PSID);
  89. #ifdef __cplusplus
  90. }
  91. #endif /* __cplusplus */
  92. #endif //OS_WINCE
  93. #endif //_REGLIC_H_