2.2.1.4 DN_SEND_CONNECT_INFO

The DN_SEND_CONNECT_INFO packet is sent from the host/server indicating to the connecting peer/client that it has joined the game session.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dwPacketType

dwReplyOffset

dwReplySize

dwSize

dwFlags

dwMaxPlayers

dwCurrentPlayers

dwSessionNameOffset

dwSessionNameSize

dwPasswordOffset

dwPasswordSize

dwReservedDataOffset

dwReservedDataSize

dwApplicationReservedDataOffset

dwApplicationReservedDataSize

guidInstance (16 bytes)

...

...

guidApplication (16 bytes)

...

...

dpnid

dwVersion

dwVersionNotUsed

dwEntryCount

dwMembershipCount

DN_NameTable_Entry_Info (variable)

...

DN_NameTable_Membership_Info (variable)

...

URL (variable)

...

Data (variable)

...

Name (variable)

...

ApplicationReservedData (variable)

...

ReservedData (variable)

...

Password (variable)

...

SessionName (variable)

...

Reply (variable)

...

dwPacketType (4 bytes): A 32-bit integer that indicates the packet type.

Value

Meaning

DN_MSG_INTERNAL_SEND_CONNECT_INFO

0x000000C2

The server/host response to a client/peer that contains game session information.

dwReplyOffset (4 bytes): A 32-bit field that specifies the offset in bytes from the end of dwPacketType of the reply field. If dwReplyOffset is 0, the packet does not include a reply.

dwReplySize (4 bytes): A 32-bit field that specifies the size, in bytes, of the reply field. If dwReplyOffset is set to 0, dwReplySize MUST be 0. If dwReplyOffset is not 0, dwReplySize MUST NOT be 0.

dwSize (4 bytes): A 32-bit field that specifies the size, in bytes, of the application description information. This includes all fields starting with dwSize through guidApplication.

dwFlags (4 bytes): A 32-bit integer that specifies the application flags.

Value

Meaning

DPNSESSION_CLIENT_SERVER

0x00000001

A client/server game session.

DPNSESSION_MIGRATE_HOST

0x00000004

Host migration is allowed.

DPNSESSION_NODPNSVR

0x00000040

The DirectPlay enumeration server is not running.

DPNSESSION_REQUIREPASSWORD

0x00000080

Password is REQUIRED.

DPNSESSION_NOENUMS

0x00000100

No enumerations are allowed from the game session. This value is only available in DirectPlay 9.

DPNSESSION_FAST_SIGNED

0x00000200

Fast signing is turned on for the game session. Passed to protocol layer. Cannot be used with DPNSESSION_FULL_SIGNED. This value is available only in DirectPlay 9.

DPNSESSION_FULL_SIGNED

0x00000400

Full signing turned on for the game session. Passed to protocol layer. Cannot be used with DPNSESSION_FAST_SIGNED. This value is available only in DirectPlay 9.

dwMaxPlayers (4 bytes): A 32-bit integer that specifies the maximum number of clients/peers allowed in the game session. A value of 0 indicates that the maximum number of players is not specified.

dwCurrentPlayers (4 bytes): A 32-bit integer that specifies the current number of clients/peers in the game session.

dwSessionNameOffset (4 bytes): A 32-bit field that specifies the offset in bytes from the end of dwPacketType to the sessionName field. If dwSessionNameOffset is 0, the packet does not include a game session name.

dwSessionNameSize (4 bytes): A 32-bit field that specifies the size, in bytes, of the sessionName field. If dwSessionNameOffset is 0, dwSessionNameSize MUST be 0. If dwSessionNameOffset is not 0, dwSessionNameSize MUST NOT be 0.

dwPasswordOffset (4 bytes): A 32-bit field that specifies the offset, in bytes, from the end of dwPacketType to the start of the password. If dwPasswordOffset is 0, the packet does not include a password.

dwPasswordSize (4 bytes): A 32-bit field that specifies the size, in bytes, of the password. If dwPasswordOffset is 0, dwPasswordSize MUST be 0. If dwPasswordOffset is not 0, dwPasswordSize MUST NOT be 0.

dwReservedDataOffset (4 bytes): A 32-bit field that specifies the offset, in bytes, from the end of dwPacketType to the reservedData field. If dwReservedDataOffset is 0, the packet does not include reserved data.

dwReservedDataSize (4 bytes): A 32-bit field that specifies the size, in bytes, of the reservedData field. If dwReservedDataOffset is 0, dwReservedDataSize MUST be 0. If dwReservedDataOffset is not 0, dwReservedDataSize MUST NOT be 0.

dwApplicationReservedDataOffset (4 bytes): A 32-bit field that specifies the offset, in bytes, from the end of dwPacketType to the applicationReservedData field. If dwApplicationReservedDataOffset is 0, the packet does not include application reserved data.

dwApplicationReservedDataSize (4 bytes): A 32-bit field that specifies the size, in bytes, of the applicationReservedData field. If dwApplicationReservedDataOffset is 0, dwApplicationReservedDataSize MUST also be 0. If dwApplicationReservedDataOffset is not 0, dwApplicationReservedDataSize MUST NOT be 0.

guidInstance (16 bytes): A 128-bit field that contains the GUID that identifies the particular instance of the server/host application. The value of this field implicitly SHOULD match the value of the guidInstance field specified in the DN_INTERNAL_MESSAGE_PLAYER_CONNECT_INFO or DN_INTERNAL_MESSAGE_PLAYER_CONNECT_INFO_EX message, unless that field contained all zeroes, in which case this guidInstance value informs the receiving client of the actual game session instance GUID.

guidApplication (16 bytes): The application GUID as defined by the host/server.

dpnid (4 bytes): A 32-bit integer created by the server/host that provides the identifier for the new client joining the game session. For more information, see DN_DPNID.

dwVersion (4 bytes): A 32-bit integer that specifies the current name table version.

dwVersionNotUsed (4 bytes): Not used.

dwEntryCount (4 bytes): A 32-bit integer that provides the number of entries in the name table contained in the DN_NAMETABLE_ENTRY_INFO field below. These are in essence players in the game session.

dwMembershipCount (4 bytes): A 32-bit integer that provides the number of memberships in the name table contained in the DN_NAMETABLE_MEMBERSHIP_INFO field below. These are in essence player to group combinations.

DN_NameTable_Entry_Info (variable): This field contains a variable-length array of DN_NAMETABLE_ENTRY_INFO structures. The length of this array is described above in the dwEntryCount field. Each entry in this array describes a player or group in the game session. In peer-to-peer mode, the host MUST transmit entries for all existing participants and the new participant. In client/server mode, the server MUST transmit only two entries: one for the server player and one for the new participant.

DN_NameTable_Membership_Info (variable): This field contains a variable-length array of DN_NAMETABLE_MEMBERSHIP_INFO structures. The length of this array is described above in the dwMembershipCount field. Each entry in this array describes a player/group combination.

URL (variable): A variable-length field that contains a 0-terminated character array that provides the URL of a user in the game session. This field's position is determined by dwURLOffset and the size stated in dwURLSize, both fields in the corresponding DN_NAMETABLE_ENTRY_INFO structure. There can be multiple instances of the URL field, as defined by the number of DN_NAMETABLE_ENTRY_INFO sections that are included.

Data (variable): A variable-length field that contains a 0-terminated character array that specifies the user data. This field's position is determined by dwDataOffset and the size stated in dwDataSize, both fields in the corresponding DN_NAMETABLE_ENTRY_INFO structure. There can be multiple instances of the Data field, as defined by the number of DN_NAMETABLE_ENTRY_INFO sections that are included.

Name (variable): A variable-length field that contains a 0-terminated wide character array that contains the client name. This field's position is determined by dwNameOffset and the size stated in dwNameSize, both fields in the corresponding DN_NAMETABLE_ENTRY_INFO structure. There can be multiple instances of the Name field, as defined by the number of DN_NAMETABLE_ENTRY_INFO sections that are included.

ApplicationReservedData (variable): A variable-length field that contains a 0-terminated character array that specifies the application reserved data. This field's position is determined by dwApplicationReservedDataOffset and the size stated in dwApplicationReservedDataSize.

ReservedData (variable): A variable-length field that contains a byte array that provides the reserved data. This field's position is determined by dwReservedDataOffset and the size stated in dwReservedDataSize.

Password (variable): A variable-length field that contains a 0-terminated wide character array that specifies the application password data. This field's position is determined by dwPasswordOffset and the size stated in dwPasswordSize. This data is passed in clear text to the protocol layer.

SessionName (variable): A variable-length field that contains a 0-terminated wide character array that specifies the game session name. This field's position is determined by dwSessionNameOffset and the size stated in dwSessionNameSize.

Reply (variable): A variable-length field that contains a byte array that provides the reply. This field's position is determined by dwReplyOffset and the size stated in dwReplySize.