DeleteProfile marks the profile for deletion if it is currently being used, waiting until it is no longer active to remove it. The profile does not actually disappear until every client with an active session has disconnected.
DeleteProfile calls the entry point function of every message service in the profile with the ulContext parameter set to MSG_SERVICE_DELETE. The calls to the entry point functions occur before the services are physically removed from the profile.