[This is preliminary documentation and subject to change.]
Msbdnapi.dll is an in-process server. Each process that accesses Msbdnapi.dll is separate from all others. Therefore routes, address reservations, and bandwidth reservations created using Msbdnapi.dll only apply to the process that created them. The MMR recognizes each process by having each process set a GUID called an application ID. Applications should need to create unique GUIDs for each instance of the application using CoCreateGUID. Msbdnapi.dll keeps track of the application ID and sends it to the MMR when it is required.
Applications should delete reservations and routes that they are no longer using. This frees resources for other applications that use the MMR.
Msbdnapi.dll uses remote procedure calls (RPC) to access the MMR. Using RPCs allows applications that access the MMR to be on a different computer than the MMR. The only requirement is that the computers be connected by a network that supports RPCs. There are several reasons for such an approach, including reducing the load on the computer running the MMR and allowing data to be sent to the MMR from different locations.
There are four interfaces implemented in Msbdnapi.dll. The first interface is called IBdnApplication and allows applications to set and retreive application IDs. The application ID must be set before accessing any of the other interfaces in Msbdnapi.dll.
The next interface in Msbdnapi.dll is IBdnHostLocator. Applications use this interface to find a specific Microsoft® Address Reservation Server (ARS). The Address Reservation Server maintains a database of static IP addresses that are used for multicast data. The database includes reservations which contain information about what process has requested what IP address at what times. The IBdnHostLocater interface allows applications to give the name of a particular ARS or to search the network for any ARS.
The third interface in Msbdnapi.dll is IBdnAdressreserve. Applications use this interface to access the ARS to make, query, or delete IP address reservations.
The last interface in Msbdnapi.dll is IBdnRoute. This interface is for retrieving information from the MMR and setting up routes and bandwidth reservations. Routes are instructions that tell the MMR what IP packets get sent to what virtual interface. Bandwidth reservations are requests by a specific process to send a certain amount of data at a certain speed at a certain time.