2.2.37 DN_NAMETABLE

The name table is a concept used by DirectPlay to keep all participants in a game session in sync with the different actions that are being performed.

The name table is really a table of players and groups that are included in the game session. Each change to the state of the table is a versioned name table operation. Any participant in the game session who applies these operations will generate a view that is consistent with every other players' name table.

Note Groups are not supported by the DirectPlay DXDiag Usage Protocol.

The following table identifies the name table operations that can be performed.

Action

Meaning

0x000000C6

TRANS_USERDATA_INSTRUCT_CONNECT (section 2.2.20)

0x000000D0

TRANS_USERDATA_ADD_PLAYER (section 2.2.11)

0x000000D1

TRANS_USERDATA_DESTROY_PLAYER (section 2.2.15)

The host/server is responsible for all name table operations, and all peers in the game session MUST maintain their own name table copy for use in host migration. All participants MUST also preserve a record of all operations that they have performed on the name table that have incremented the version number used during host migration. Host migration is described in [MC-DPL8CS] section 1.3.6.

The first operation in the name table is set to a version number of 1 and each subsequent operation increments the version by one. Every time the modulo 4 result of the new version number of the name table is equal to 0, each non-host peer SHOULD send a TRANS_USERDATA_NAMETABLE_VERSION message to the host reporting the current name table version of the peer. The host SHOULD track the versions reported by all peers and determine the oldest version number from all reports. When the oldest version number advances, the host SHOULD send a TRANS_USERDATA_RESYNC_VERSION message to all participants indicating the new oldest value. All participants SHOULD then release their records of all name table operations with versions older than this value, as they will no longer be needed during host migration.