Platform SDK: RAS/Routing and RAS

RasAdminGetIpAddressForUser

The RasAdminGetIpAddressForUser function is an application-defined function that is exported by a third-party RAS server administration DLL. RAS calls this function to get an IP address for the dialed-in remote client.

DWORD RasAdminGetIpAddressForUser(
  WCHAR *lpszUserName, // pointer to the name of the remote user
  WCHAR *lpszPortName, // pointer to the name of the port
  IPADDR *pipAddress,  // pointer to the IP address
  BOOL *bNotifyRelease // indicates whether RAS should call 
                       // RasAdminReleaseIpAddress
);

Parameters

lpszUserName
Pointer to a null-terminated Unicode string that contains the name of the remote user for whom an IP address is required.
lpszPortName
Pointer to a null-terminated Unicode string that contains the name of the port on which the user specified by lpszUserName is attempting to connect.
pipAddress
Pointer to an IPADDR variable. On input, *pipAddress contains either zero or the IP address that the RAS server proposes to use for the dialed-in remote client. The function can set *pipAddress to a different IP address, or accept the passed-in IP address. If *pipAddress is zero on input, the function must provide an IP address; otherwise, the client will be unable to connect to this server using IP.
bNotifyRelease
Pointer to a BOOL variable. Set this variable to TRUE if you want RAS to call your RasAdminReleaseIpAddress function when the user disconnects from this port; otherwise, set it to FALSE.

Return Values

If pipAddress points to an IP address that the client can use to connect to this RAS server, the function should return NO_ERROR. This can occur if the function accepts the IP address that was passed by the RAS server, or if the function provides a different IP address.

If pipAddress does not point to an IP address, the function should return a nonzero error code. This can occur if no IP address is available, or if the passed in IP address is unacceptable. In this case, the client will be unable to connect to this server using IP. There is no extended error information for this function; do not call GetLastError.

Remarks

The setup program for a third-party RAS administration DLL must register the DLL with RAS by providing information under the following key in the registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAS\AdminDll

To register the DLL, set the following values under this key.

Value name Value data
DisplayName A REG_SZ string that contains the user-friendly display name of the DLL.
DLLPath A REG_SZ string that contains the full path of the DLL.

For example, the registry entry for a RAS administration DLL from a fictional company named ProElectron, Inc. Corporation might be:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAS\AdminDll
DisplayName : REG_SZ : ProElectron RAS Admin DLL
DLLPath : REG_SZ : C:\nt\system32\ntwkadm.dll

The setup program for a RAS administration DLL should also provide remove/uninstall functionality. If a user removes the DLL, the setup program should delete the DLL's registry entries.

Requirements

  Windows NT/2000: Requires Windows NT 4.0 or later.
  Header: Declared in Rassapi.h.

See Also

Remote Access Service (RAS) Overview, RAS Server Administration Functions, RasAdminReleaseIpAddress