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.

142 lines
2.8 KiB

  1. // dispatcher interface file
  2. #ifndef _DISPIF_H_
  3. #define _DISPIF_H_
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef
  8. BOOL FIMPERSONATECLIENT(
  9. PST_PROVIDER_HANDLE *hPSTProv
  10. );
  11. FIMPERSONATECLIENT FImpersonateClient;
  12. typedef
  13. BOOL FREVERTTOSELF(
  14. PST_PROVIDER_HANDLE *hPSTProv
  15. );
  16. FREVERTTOSELF FRevertToSelf;
  17. typedef
  18. BOOL
  19. FISACLSATISFIED(
  20. PST_PROVIDER_HANDLE *hPSTProv,
  21. PST_ACCESSRULESET *psRules,
  22. DWORD dwAccess,
  23. LPVOID // coming soon: fill a status structure with data about access attempt
  24. );
  25. FISACLSATISFIED FIsACLSatisfied;
  26. typedef
  27. BOOL FGETCALLERNAME(
  28. PST_PROVIDER_HANDLE *hPSTProv,
  29. LPWSTR* ppszCallerName,
  30. DWORD_PTR *lpdwBaseAddress
  31. );
  32. FGETCALLERNAME FGetCallerName;
  33. typedef
  34. BOOL FGETUSER(
  35. PST_PROVIDER_HANDLE *hPSTProv,
  36. LPWSTR* pszUser
  37. );
  38. FGETUSER FGetUser;
  39. typedef
  40. BOOL FGETSERVERPARAM(
  41. IN PST_PROVIDER_HANDLE *hPSTProv,
  42. IN DWORD dwParam,
  43. IN LPVOID pData,
  44. IN OUT DWORD *pcbData
  45. );
  46. FGETSERVERPARAM FGetServerParam;
  47. typedef
  48. BOOL FSETSERVERPARAM(
  49. IN PST_PROVIDER_HANDLE *hPSTProv,
  50. IN DWORD dwParam,
  51. IN LPVOID pData,
  52. IN DWORD pcbData
  53. );
  54. FSETSERVERPARAM FSetServerParam;
  55. // HACKHACK HACKHACK HACKHACK
  56. typedef
  57. BOOL FGETPASSWORD95LOWERCASE(
  58. LPBYTE rgbPwd
  59. );
  60. FGETPASSWORD95LOWERCASE FGetPassword95LowerCase;
  61. // a single structure to hold all of these callbacks
  62. typedef struct _DISPIF_CALLBACKS
  63. {
  64. DWORD cbSize; // sizeof(DISPIF_CALLBACKS)
  65. FISACLSATISFIED* pfnFIsACLSatisfied;
  66. FGETUSER* pfnFGetUser;
  67. FGETCALLERNAME* pfnFGetCallerName;
  68. FIMPERSONATECLIENT* pfnFImpersonateClient;
  69. FREVERTTOSELF* pfnFRevertToSelf;
  70. FGETSERVERPARAM* pfnFGetServerParam;
  71. FSETSERVERPARAM* pfnFSetServerParam;
  72. } DISPIF_CALLBACKS, *PDISPIF_CALLBACKS;
  73. //
  74. // private interfaces in the server which are not exported for provider use
  75. //
  76. BOOL
  77. FInternalCreateType(
  78. PST_PROVIDER_HANDLE *phPSTProv,
  79. PST_KEY KeyLocation,
  80. const GUID *pguidType,
  81. PPST_TYPEINFO pinfoType,
  82. DWORD dwFlags
  83. );
  84. BOOL
  85. FInternalCreateSubtype(
  86. PST_PROVIDER_HANDLE *phPSTProv,
  87. PST_KEY KeyLocation,
  88. const GUID *pguidType,
  89. const GUID *pguidSubtype,
  90. PPST_TYPEINFO pinfoSubtype,
  91. DWORD dwFlags
  92. );
  93. BOOL
  94. FInternalWriteAccessRuleset(
  95. PST_PROVIDER_HANDLE *phPSTProv,
  96. PST_KEY KeyLocation,
  97. const GUID *pguidType,
  98. const GUID *pguidSubtype,
  99. PPST_ACCESSRULESET psRules,
  100. DWORD dwFlags
  101. );
  102. #ifdef __cplusplus
  103. }
  104. #endif
  105. #endif // _DISPIF_H_