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.

151 lines
2.4 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. gs.h
  5. Abstract:
  6. Public gs definitions
  7. Author:
  8. Ahmed Mohamed (ahmedm) 12, 01, 2000
  9. Revision History:
  10. --*/
  11. #ifndef _GS_H
  12. #define _GS_H
  13. #include <nt.h>
  14. #include <ntdef.h>
  15. #include <ntrtl.h>
  16. #include <nturtl.h>
  17. #include <windows.h>
  18. #include <assert.h>
  19. #define GS_MAX_GROUPS 64
  20. #define GS_MAX_GROUP_SZ 8
  21. #define GS_MAX_NAME_SZ 28
  22. typedef enum {
  23. GsEventData,
  24. GsEventSingleData,
  25. GsEventMemberJoin,
  26. GsEventMemberUp,
  27. GsEventMemberDown,
  28. GsEventMemberEvicted,
  29. GsEventAbort,
  30. GsEventInvalid
  31. }gs_eventid_t;
  32. typedef struct {
  33. int lid;
  34. int mid;
  35. int group_size;
  36. int cluster_size;
  37. UINT32 mset;
  38. }gs_info_t;
  39. typedef char gs_tag_t[64];
  40. typedef NTSTATUS (WINAPI *gs_callback_t)(HANDLE cookie, gs_tag_t tag, PVOID buf,
  41. IO_STATUS_BLOCK *ios);
  42. char *
  43. WINAPI
  44. config_get_volume();
  45. char *
  46. WINAPI
  47. config_get_crsfile();
  48. int
  49. WINAPI
  50. config_get_crssz();
  51. void
  52. WINAPI
  53. GsInit();
  54. void
  55. WINAPI
  56. GsExit();
  57. NTSTATUS
  58. WINAPI
  59. GsSendDeliveredRequest(HANDLE group, HANDLE event OPTIONAL,
  60. gs_tag_t tag, PVOID buf, UINT32 len,
  61. PVOID rbuf[], UINT32 elmsz,
  62. IO_STATUS_BLOCK iostatus[],
  63. HANDLE *context);
  64. NTSTATUS
  65. WINAPI
  66. GsSendContinuedRequest(HANDLE context, HANDLE event OPTIONAL,
  67. gs_tag_t tag, PVOID bruf, UINT32 len,
  68. PVOID rbuf[], UINT32 elmsz,
  69. IO_STATUS_BLOCK iostatus[],
  70. BOOLEAN close);
  71. NTSTATUS
  72. WINAPI
  73. GsSendQueuedRequest(HANDLE group, HANDLE event OPTIONAL,
  74. gs_tag_t tag, PVOID buf, UINT32 len,
  75. PVOID rbuf[], UINT32 elmsz,
  76. IO_STATUS_BLOCK iostatus[]);
  77. NTSTATUS
  78. WINAPI
  79. GsSendDirectedRequest(HANDLE group, HANDLE event OPTIONAL,
  80. int memberid,
  81. gs_tag_t tag, PVOID buf, UINT32 len,
  82. PVOID rbuf, UINT32 elmsz,
  83. IO_STATUS_BLOCK *iostatus,
  84. HANDLE *context);
  85. NTSTATUS
  86. WINAPI
  87. GsSendReply(HANDLE gd, PVOID buf, int len, NTSTATUS status);
  88. NTSTATUS
  89. WINAPI
  90. GsReceiveRequest(HANDLE gd, PVOID buf, int len);
  91. void
  92. WINAPI
  93. GsRegisterHandler(HANDLE gd, gs_callback_t func);
  94. HANDLE
  95. WINAPI
  96. GsCreateGroup(gs_callback_t func, char *name, int len, int windowsz,
  97. int disposition, HANDLE *ctx);
  98. NTSTATUS
  99. WINAPI
  100. GsEvictMember(HANDLE gd, int memberid);
  101. NTSTATUS
  102. WINAPI
  103. GsQueryGroup(HANDLE gd, gs_info_t *info);
  104. NTSTATUS
  105. WINAPI
  106. GsCloseGroup(HANDLE gd);
  107. HANDLE
  108. WINAPI
  109. GsGetGroupHandle(HANDLE msgd);
  110. int
  111. WINAPI
  112. GsGetSourceMemberid(HANDLE msgd);
  113. #endif