DirectPlay 5.0 Release Notes:

1. Security and Authentication
------------------------------
In order to host a secure DirectPlay session using the default security
provider (NTLM), you will need to host it on NT 4.0 (Workstation or Server).
Clients may use either NT or Windows 95.  Instructions for installing
DirectPlay on NT are provided below.

Accounts will need to created on the NT system that is hosting the
session. This can be done using the "User Manager for Domains" in the
Administrative Tools program group.  If the NT system hosting the session
is already logged into a domain then accounts on the domain may also be
used.

If the client machine is already logged into the NT domain, an application
will not need to supply credentials when connecting to a secure DirectPlay
session.  Otherwise, credentials will need to supplied by the application
using IDirectPlay3::SecureOpen()

Security may only be used in client/server sessions.

Installing DirectPlay 5 on NT 4.0 with SP3
------------------------------------------
NOTE: These instructions are being given for testing purposes only. This
must not be used to ship products using DirectPlay v5 that wish to run on
NT.  Consult the DirectX web site - http:://www.microsoft.com/DirectX for an
official installation program for DirectPlay.

1. Copy the DirectPlay DLLs to the WinNT/System32 directory. These DLLs
   are: dplaysvr.exe, dplayx.dll, dpwsockx.dll, dpmodemx.dll

2. Add the registry entries needed for DirectPlay.  The file
   DPLAYNT.REG on the SDK CD in the \extras\dplay directory will do this
   for you.  Simply double-click on this file to install it.

3. You are now ready to host a secure session on your NT 4.0 machine.
   Be sure to specify the DPSESSION_SECURESERVER flag in the DPSESSIONDESC2
   structure when you create the session.



2. Stricter Parameter Validation
--------------------------------
Stricter parameter validation has been added to DirectPlay to trap cases
where applications set unused bits in flags.  Code that may have worked
before under previous versions of DirectPlay may now return an error if
invalid bits are set in flags parameters.

Methods which take structures MUST have the dwSize member filled in with the
correct size of the structure - sizeof(STRUCTURE) - or an invalid parameter
error will be returned. This is so that DirectPlay can tell what version of
a structure is being requested by the application.  CreatePlayer is a
function that is now doing this.

In most cases, the most helpful way to determine what the problem is with
invalid parameter errors is to run the application using DEBUG versions of
the DirectX DLLs and watch the debug output.  It will usually give a message
indicating what the problem was.


3. Sample Lobby Server
----------------------

Included on the SDK is a sample lobby server and lobby client that use
the DirectPlay APIs and the lobby provider architecture.  Consult the
README.TXT in the DXSDK\SDK\SAMPLES\BELLHOP directory for instructions on
setting this up.

4. DirectPlay Bug Fixes
-----------------------
Many bugs reported in DirectPlay3 have been fixed in DirectPlay5.  These
fixes will work for any application compiled with the DX3 SDK but where
the DX5 runtime is installed on the system.

- Two or more clients can now join a session simultaneously without losing
  any players
- Attempting to host a second session on a machine using IPX will now return 
  an error
- Attempting to set the name or remote data on a player or group you don't 
  own will now result in a DPERR_ACCESSDENIED message.
- Attempting to enumerate sessions a second time using the modem service 
  provider will no longer return a "Line Already In Use" error,
- IDirectPlayLobby2::Connect() now connects to a remote session much faster
- All service providers now return DPERR_USERCANCEL if the user cancelled
  the service provider dialog
- DDHELP.EXE no longer statically linked the wsock32.dll so you don't need
  to have Winsock installed to run a DirectDraw only application
- Group management functions that used to return DPERR_INVALIDPLAYER now
  return DPERR_INVALIDGROUP
- DirectPlay now returns an error if the IPX binding from the network adapter
  on Windows 95
- Opening and closing a session on the same instance of a DirectPlay interface
  now works
- The modem service provider will prompt for a phone number each time a
  new interface is created
- EnumSessions will return password protected sessions without having to
  supply the password in advance

5. General Notes
----------------

-- You can find out the IP address of your machine on Windows 95 by running
   "winipcfg".  On NT use "ipconfig"

   If you have a net card and a modem installed, you will need to make
   sure you read the IP address of the modem connection to the Internet.
   The IP address information for the modem will typically show up under
   "PPP Adapter".

-- The IPX service provider will not cross routers.

-- The IPX, modem and serial service providers do not implement guaranteed
   messaging.



6. Known Limitations
--------------------

Many of these limitations will be corrected in a future release of
DirectPlay. Consult the DirectX web site - http:://www.microsoft.com/DirectX
for updated information.

-- There is no multi-home support for IPX.  Use TCP/IP if multi-homing
   is needed.

-- DirectPlay generally will not work through proxies and firewalls.

-- If a player drops out of the session due to a lost connection, new
   players will not be able to join the session for approximately
   1.5 minutes.  This is only a problem on the TCP/IP service provider.

-- A multicast server may lose messages during long data transfers.

-- Encrypted or signed messages can only be sent guaranteed and only between
   a client and a server player.

-- When joining a secure client/server session, the client machine must
   set the DPSESSIONDESC2.dwFlags member to zero before calling
   IDirectPlay3::Open with the DPOPEN_JOIN flag otherwise a
   DPERR_INVALIDFLAGS error will be returned.

-- The DPSEND_ENCRYPTED and DPSEND_SIGNED flags cannot be used when sending
   messages to a group.  If security is required, send individual messages
   to each player in the group.

