Приостановленные состояния
Во время операции подключения могут возникать моменты, когда удаленный сервер не может продолжить работу без дополнительных сведений от локального пользователя. Начиная с Windows NT 3.5, функция RasDial поддерживает приостановленные состояния. Приостановленное состояние позволяет диспетчер подключений удаленного доступа приостанавливать операцию подключения, чтобы клиентское приложение RAS пользовалось данными пользователя.
Приостановленные состояния полезны в следующих ситуациях:
- Когда пользователю необходимо указать номер обратного вызова .
- Если проверка подлинности пользователя завершается сбоем, пользователь может ввести другое имя пользователя и пароль.
- После истечения срока действия пароля пользователя пользователь может указать новый пароль.
По умолчанию приостановленная поддержка состояния отключена. Клиенты RAS, которые хотят поддерживать приостановленные состояния, должны установить флаг RDEOPTS_PausedStates в структуре RASDIALEXTENSIONS , передаваемой в качестве параметра в RasDial.
При наступает приостановленное состояние, диспетчер подключений удаленного доступа вызывает обработчик уведомлений клиента. Если поддержка приостановленного состояния отключена, в уведомлении отображается сообщение об ошибке, а операция подключения завершается сбоем. Если он включен, диспетчер подключений приостанавливает операцию подключения, чтобы дождаться ответа клиента RAS. Клиент RAS может возобновить операцию подключения вторым вызовом RasDial или завершить ее, вызвав функцию RasHangUp .
После получения входных данных пользователя клиент RAS перезапускает операцию подключения, вызывая RasDial еще раз. В этом втором вызове RasDial необходимо указать следующие сведения:
- Дескриптор подключения, возвращенный исходным вызовом RasDial .
- Тот же обработчик уведомлений, что и исходный вызов RasDial .
- Входные данные пользователя в соответствующих элементах структуры RASDIALPARAMS . Другие элементы структуры RASDIALPARAMS должны иметь те же сведения, что и в исходном вызове RasDial .
Второй вызов RasDial не может быть выполнен из обработчика уведомлений.