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.

121 lines
4.5 KiB

  1. /*==========================================================================
  2. *
  3. * Copyright (C) 2001 Microsoft Corporation. All Rights Reserved.
  4. *
  5. * File: dplprot.h
  6. * Content: DirectPlay8 Inter-Memory Packet format
  7. *
  8. ***************************************************************************/
  9. #ifndef __DPLPROT_H
  10. #define __DPLPROT_H
  11. #define DPL_MSGID_INTERNAL_MASK 0xffff0000
  12. #define DPL_MSGID_INTERNAL 0xb00b0000
  13. #define DPL_MSGID_INTERNAL_DISCONNECT (0x0001 | DPL_MSGID_INTERNAL)
  14. #define DPL_MSGID_INTERNAL_CONNECT_REQ (0x0002 | DPL_MSGID_INTERNAL)
  15. #define DPL_MSGID_INTERNAL_CONNECT_ACK (0x0003 | DPL_MSGID_INTERNAL)
  16. #define DPL_MSGID_INTERNAL_UPDATE_STATUS (0x0004 | DPL_MSGID_INTERNAL)
  17. #define DPL_MSGID_INTERNAL_IDLE_TIMEOUT (0x0005 | DPL_MSGID_INTERNAL)
  18. #define DPL_MSGID_INTERNAL_CONNECTION_SETTINGS (0x0006 | DPL_MSGID_INTERNAL)
  19. #pragma pack(push,1)
  20. // DPL_INTERNAL_CONNECTION_SETTINGS
  21. //
  22. // This structure is used to pass connection settings on the IPC wire. It is used
  23. // be several message types.
  24. //
  25. typedef UNALIGNED struct _DPL_INTERNAL_CONNECTION_SETTINGS
  26. {
  27. DWORD dwFlags;
  28. DWORD dwHostAddressOffset;
  29. DWORD dwHostAddressLength;
  30. DWORD dwDeviceAddressOffset;
  31. DWORD dwDeviceAddressLengthOffset;
  32. DWORD dwNumDeviceAddresses;
  33. DWORD dwPlayerNameOffset;
  34. DWORD dwPlayerNameLength;
  35. DPN_APPLICATION_DESC_INFO dpnApplicationDesc;
  36. } DPL_INTERNAL_CONNECTION_SETTINGS, *PDPL_INTERNAL_CONNECTION_SETTINGS;
  37. // DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE_HEADER
  38. //
  39. // Lobby Client <--> Lobbied Application
  40. //
  41. // This structure is the header portion of the connection_settings_update message
  42. typedef UNALIGNED struct _DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE_HEADER
  43. {
  44. DWORD dwMsgId; // = DPL_MSGID_INTERNAL_CONNECTION_SETTINGS
  45. DWORD dwConnectionSettingsSize; // 0 = no settings, 1 = settings
  46. } DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE_HEADER, *PDPL_INTERNAL_CONNECTION_SETTINGS_UPDATE_HEADER;
  47. // DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE
  48. //
  49. // Lobby Client <--> Lobbied Application
  50. //
  51. // This structure is sent to update the connection settings for a specified connection.
  52. typedef UNALIGNED struct _DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE : DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE_HEADER
  53. {
  54. DPL_INTERNAL_CONNECTION_SETTINGS dplConnectionSettings;
  55. } DPL_INTERNAL_CONNECTION_SETTINGS_UPDATE, *PDPL_INTERNAL_CONNECTION_SETTINGS_UPDATE;
  56. // DPL_INTERNAL_MESSAGE_CONNECT_ACK
  57. //
  58. // Lobby Client <-- Lobbied Application
  59. //
  60. // This message is sent to acknowledge a connection request.
  61. typedef UNALIGNED struct _DPL_INTERNAL_MESSAGE_CONNECT_ACK {
  62. DWORD dwMsgId; // = DPL_MSGID_INTERNAL_CONNECT_ACK
  63. DPNHANDLE hSender;
  64. } DPL_INTERNAL_MESSAGE_CONNECT_ACK, *PDPL_INTERNAL_MESSAGE_CONNECT_ACK;
  65. // DPL_INTERNAL_MESSAGE_CONNECT_REQ_HEADER
  66. //
  67. // Lobby Client --> Lobbied Application
  68. //
  69. // This is the header for the connect_req message.
  70. typedef UNALIGNED struct _DPL_INTERNAL_MESSAGE_CONNECT_REQ_HEADER
  71. {
  72. DWORD dwMsgId; // = DPL_MSGID_INTERNAL_CONNECT_REQ
  73. DPNHANDLE hSender;
  74. DWORD dwSenderPID;
  75. DWORD dwLobbyConnectDataOffset;
  76. DWORD dwLobbyConnectDataSize;
  77. DWORD dwConnectionSettingsSize;
  78. } DPL_INTERNAL_MESSAGE_CONNECT_REQ_HEADER, *PDPL_INTERNAL_MESSAGE_CONNECT_REQ_HEADER;
  79. // DPL_INTERNAL_MESSAGE_CONNECT_REQ
  80. //
  81. // Lobby Client --> Lobbied Application
  82. //
  83. // This message is sent to request a connection be established.
  84. typedef UNALIGNED struct _DPL_INTERNAL_MESSAGE_CONNECT_REQ : DPL_INTERNAL_MESSAGE_CONNECT_REQ_HEADER
  85. {
  86. DPL_INTERNAL_CONNECTION_SETTINGS dplConnectionSettings;
  87. } DPL_INTERNAL_MESSAGE_CONNECT_REQ, *PDPL_INTERNAL_MESSAGE_CONNECT_REQ;
  88. // DPL_INTERNAL_MESSAGE_DISCONNECT
  89. //
  90. // Lobby Client <--> Lobbied Application
  91. //
  92. // This message is sent to issue a disconnect.
  93. typedef UNALIGNED struct _DPL_INTERNAL_MESSAGE_DISCONNECT
  94. {
  95. DWORD dwMsgId; // = DPL_MSGID_INTERNAL_DISCONNECT
  96. DWORD dwPID;
  97. } DPL_INTERNAL_MESSAGE_DISCONNECT, *PDPL_INTERNAL_MESSAGE_DISCONNECT;
  98. // DPL_INTERNAL_MESSAGE_DISCONNECT
  99. //
  100. // Lobby Client <-- Lobbied Application
  101. //
  102. // This message is sent to update the client of the application's status.
  103. typedef UNALIGNED struct _DPL_INTERNAL_MESSAGE_UPDATE_STATUS {
  104. DWORD dwMsgId; // = DPL_MSGID_INTERNAL_DISCONNECT
  105. DWORD dwStatus;
  106. } DPL_INTERNAL_MESSAGE_UPDATE_STATUS, *PDPL_INTERNAL_MESSAGE_UPDATE_STATUS;
  107. #pragma pack(pop)
  108. #endif // __DPLPROT_H