Способ установки драйвера для эмуляции сетевой карты
Иллюстрации
Показать всеИзобретение относится к области установки программного обеспечения, а именно к установке драйвера для эмуляции сетевой карты для связи между хостом и устройством. Техническим результатом является обеспечение пути, разрешающего использование USB связи, в случае неправильной идентификации класса операционной системы хоста. Для этого хост класса операционной системы хоста обнаруживается со стороны устройства, предусматривающий стадию обнаружения класса операционной системы хоста со стороны устройства путем перечисления USB и стадию попытки установить первый драйвер для эмуляции сетевой карты на хосте, соответствующий обнаруженному классу операционной системы хоста, причем установленный первый драйвер выполнен с возможностью разрешения связи между хостом и устройством и прекращения способа, если первый драйвер установлен успешно. 2 н. и 34 з.п. ф-лы, 24 ил.
Реферат
Область техники, к которой относится настоящее изобретение
Область изобретения относится к способам установки драйвера для эмуляции сетевой карты, такой как сетевая карта Ethernet или устройство (карта) WWAN, и связанным с ними компьютерным программным продуктам, системам и устройствам.
Уровень техники
Когда устройство универсальной последовательной шины (USB) впервые подключается к хосту USB, начинается процесс перечисления USB-устройства. Перечисление начинается путем отправки сигнала сброса к USB-устройству. Скорость передачи данных USB-устройства определяется во время передачи сигнала сброса. После сброса информация об USB-устройстве читается хостом и устройству присваивается уникальный 7-разрядный адрес. Если устройство поддерживается хостом, загружаются необходимые для связи с устройством драйверы устройств и устройство устанавливается в заданное состояние. Если хост USB перезагружается, то процесс перечисления повторяется для всех подключенных устройств.
Обсуждение смежной области техники
В WO 2012/025048 A1 и в US 2012054372 A1 описан процесс перечисления USB-устройств, осуществляемый в USB-устройстве. USB-устройство в первую очередь обнаруживает тип операционной системы (ОС) хоста USB, подключенного к устройству, и проводится перечисление устройств, используя процесс, выбранный из множества хранящихся процессов, основывающийся на обнаруженном типе ОС хоста. Для обнаружения типа ОС хоста USB-устройство в первую очередь представляет себя хосту как массовое запоминающее устройство USB (MSD) или устройство для взаимодействия с человеком (HID), проводит перечисление устройств для сбора факторов поведения ОС от хоста и определяет тип ОС по факторам поведения ОС. После этого USB-устройство проводит перечисление фактических устройств, представляя себя как USB-устройство, которое оно и представляет собой, используя специфический процесс перечисления для определенного типа ОС хоста. Множество хранящихся процессов перечисления представляют собой настраиваемые пользователем. Дополнительно, способ предусматривает прекращение процесса перечисления, когда хост находится на стадии базовой системы ввода-вывода (BIOS).
Тем не менее, способы перечисления USB-устройств могут идентифицировать класс операционной системы хоста USB неправильно, например, потому что хост USB может содержать версию операционной системы, которая не была публично доступна, когда USB-устройство было продано или потому что способы перечисления USB-устройств могут быть склонны к ошибкам. Необходимо предусмотреть путь, разрешающий использование USB связи, когда перечисление USB-устройств может неправильно идентифицировать класс операционной системы хоста USB.
Примеры коммуникационных протоколов описаны в приложении.
Содержание номеров патентных заявок PCT/RU 2012/000026, PCT/RU 2012/000228 и номеров публикаций патентных заявок WO 2012044201(А2), WO 2012044202(A2) и WO 2012053938(А2) включены в настоящий документ посредством ссылки.
Раскрытие изобретения
В соответствии с первым аспектом настоящего изобретения в настоящей области техники предусматривается способ установки драйвера для эмуляции сетевой карты для связи между хостом и устройством, причем хост класса операционной системы хоста обнаруживается со стороны устройства, предусматривающий стадии:
(I) обнаружения класса операционной системы хоста со стороны устройства путем перечисления USB;
(II) попытки установить первый драйвер для эмуляции сетевой карты на хосте, соответствующий обнаруженному классу операционной системы хоста, причем установленный первый драйвер выполнен с возможностью разрешения связи между хостом и устройством, и прекращения способа, если первый драйвер установлен успешно.
Вышеописанный способ, может дополнительно предусматривать стадию:
(III) если установка первого драйвера в (II) неудачна, попытки установить второй драйвер для эмуляции сетевой карты на хосте, соответствующий классу операционной системы, отличающемуся от обнаруженного класса операционной системы хоста, причем установленный второй драйвер выполнен с возможностью разрешения связи между хостом и устройством, и прекращения способа, если второй драйвер установлен успешно.
Способ может представлять собой таковой, при котором драйвер для эмуляции сетевой карты представляет собой драйвер для эмуляции сетевой карты по протоколу USB, например, с использованием протокола Ethernet-over-USB или WWAN.
Способ может представлять собой таковой, при котором попытка в (II) ограничена предварительно определенным периодом времени или предварительно определенным числом попыток.
Способ может представлять собой таковой, при котором попытка в (III) ограничена предварительно определенным периодом времени или предварительно определенным числом попыток.
Способ может представлять собой таковой, при котором способ дополнительно предусматривает стадию:
(IV) повторения стадии (III) каждый раз для каждого разного класса операционной системы из набора различных классов операционных систем до тех пор, пока не происходит успешная установка драйвера, причем успешно установленный драйвер, выполнен с возможностью разрешения связи между хостом и устройством, и прекращения способа, если успешно установленный драйвер успешно установлен.
Способ может представлять собой таковой, при котором каждая попытка в (IV) ограничена соответствующим предварительно определенным периодом времени или предварительно определенным числом попыток.
Способ может представлять собой таковой, при котором способ дополнительно предусматривает стадию:
(IV) повторения стадии (II) и (III) для каждого различного класса операционной системы в наборе различных классов операционных систем до тех пор, пока не происходит успешная установка драйвера, причем успешно установленный драйвер выполнен с возможностью разрешения связи между хостом и устройством, и прекращения способа, если успешно установленный драйвер успешно установлен.
Способ может представлять собой таковой, при котором каждая попытка в (IV) ограничена соответствующим предварительно определенным периодом времени или предварительно определенным числом попыток.
Способ может представлять собой таковой, при котором способ дополнительно предусматривает стадию:
(V) если все попытки установки драйвера неудачны, подсказки пользователю подключить физический носитель к хосту, чтобы установить драйвер для связи между хостом и устройством.
Способ может представлять собой таковой, при котором физический носитель представляет собой CD-ROM и соединение включает в себя помещение CD-ROM в хост CD-ROM накопителя.
Способ может дополнительно предусматривать стадию установки драйвера с помощью автозапуска с CD-ROM.
Способ может дополнительно предусматривать стадию установки драйвера в ручном режиме установки с CD-ROM.
Способ может представлять собой таковой, при котором физический носитель представляет собой накопитель USB FLASH или накопитель на жестком диске, и соединение включает в себя подключение накопителя USB FLASH или накопителя на жестком диске к хосту.
Способ может представлять собой таковой, при котором физический носитель, например, CD-ROM или Flash накопитель для установки драйвера эмулируется и монтируется автоматически.
Способ может представлять собой таковой, при котором способ дополнительно предусматривает стадию:
(V) если все попытки установки драйвера неудачны, подсказки пользователю подсоединить хост к серверу, поставляющему драйвера, относящиеся к операционной системе хоста, чтобы установить драйвер для связи между хостом и устройством.
Способ может дополнительно предусматривать стадию: загрузки драйвера на хост с сервера, поставляющего драйверы, относящиеся к операционной системе хоста, и установки драйвера на хост.
Способ может представлять собой таковой, при котором обнаруженный класс операционной системы хоста представляет собой Windows, поддерживающий RNDIS, и класс операционной системы, отличающийся от обнаруженного класса операционной системы хоста, представляет собой Mac/Linux.
Способ может представлять собой таковой, при котором обнаруженный класс операционной системы хоста представляет собой Mac/Linux и класс операционной системы, отличающийся от обнаруженного класса операционной системы, представляет собой Windows, поддерживающий RNDIS.
Способ может представлять собой таковой, при котором обнаруженный класс операционной системы хоста Mac/Linux, поддерживающий WWAN, и класс операционной системы, отличающийся от обнаруженного класса операционной системы хоста, представляет собой Mac/Linux, поддерживающий CDC-ECM.
Способ может представлять собой таковой, при котором обнаруженный класс операционной системы хоста стадии (II) представляет собой Mac/Linux, поддерживающий WWAN, класс операционной системы стадии (III) отличный от обнаруженного класса операционной системы, представляет собой Mac/Linux, поддерживающий CDC-ECM, и класс операционной системы стадии (IV) представляет собой Windows, поддерживающий RNDIS.
Способ может дополнительно предусматривать стадию прекращения способа, если установка драйвера для эмуляции сетевой карты на хосте, соответствующего обнаруженному классу операционной системы хоста, неудачна.
Способ может дополнительно предусматривать стадию прекращения способа, если установка на стадии (III) неудачна.
Способ может дополнительно предусматривать стадию повторения стадии (II) и стадии (III), если установка на стадии (III) неудачна.
Способ может дополнительно предусматривать стадию прекращения способа, если установка на стадии (IV) неудачна для каждого различного класса операционной системы.
Способ может дополнительно предусматривать стадию повторения стадии (II), стадии (III) и стадии (IV), если установка на стадии (IV) неудачна.
Способ может представлять собой таковой, при котором множество различных классов операционной системы содержит по меньшей мере три различных класса операционной системы.
Способ может представлять собой таковой, при котором драйвер для эмуляции сетевой карты, связывающий между собой хост и устройство, существует для беспроводной связи между хостом и устройством.
В соответствии со вторым аспектом настоящего изобретения, предусмотрена система, осуществляющая способ по любому из утверждений согласно настоящему изобретению, причем система, предусматривающая хост и устройство.
Способ может представлять собой таковой, при котором устройство представляет собой мобильное устройство связи.
Способ может представлять собой таковой, при котором мобильное устройство связи выполнено с возможностью обеспечения мгновенного и автоматического общего доступа к беспроводной сети в ответ на единственное действие пользователя, единственное действие, предусматривающее физический контактный жест пользователя с мобильным устройством или команду голосовой активизации пользователя.
Способ может представлять собой таковой, при котором устройство представляет собой портативный маршрутизатор, включающий в себя глобальный сетевой интерфейс и локальный сетевой интерфейс, портативный маршрутизатор, выполненный с возможностью подключения к глобальной сети, используя глобальный сетевой интерфейс, портативный маршрутизатор, выполненный с дополнительной возможностью обеспечения локальной сети, используя локальный сетевой интерфейс в ответ на соединение устройства с глобальной сетью, удовлетворяющее условию соединения.
Способ может представлять собой таковой, при котором устройство представляет собой адаптер USB, разрешающий беспроводную передачу данных, выполненный с возможностью получать потоковые файлы.
Способ может представлять собой таковой, при котором устройство представляет собой адаптер USB, включающий беспроводную передачу данных, выполненный с возможностью обеспечения доступа в интернет.
Способ может представлять собой таковой, при котором устройство представляет собой устройство отображения в классическом форм-факторе, предусматривающее фронтальную и тыльную основные поверхности, фронтальная основная поверхность предназначена для представления первого экрана отображения и тыльная основная поверхность предназначена для представления второго экрана отображения, отличного от первого экрана отображения.
Способ может представлять собой таковой, при котором устройство представляет собой сборочное устройство отображения, включающий в себя устройство отображения в классическом форм-факторе и съемный корпус, сборка выполнена с возможностью быть собранной, причем съемный корпус скреплен с устройством отображения в классическом форм-факторе, сборка, когда собрана содержит фронтальную и тыльную основные поверхности, причем фронтальная основная поверхность предназначена для представления первого экрана отображения, который образует часть устройства отображения в классическом форм-факторе и тыльная основная поверхность предназначена для представления второго экрана отображения, отличного от первого экрана отображения, который представляет собой часть съемного корпуса.
В соответствии с третьим аспектом настоящего изобретения, предусматривается компьютерный программный продукт, который когда установлен на устройство USB, выполнен с возможность исполнения способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством, причем класс операционной системы хоста обнаружен со стороны устройства, предусматривающий стадии:
(I) обнаружения класса операционной системы хоста со стороны устройства с помощью USB перечисления;
(II) попытки установить первый драйвер для эмуляции сетевой карты на хосте, соответствующий обнаруженному классу операционной системы хоста, причем установленный первый драйвер выполнен с возможностью обеспечения связи между хостом и устройством, и прекращения стадии, если первый драйвер успешно установлен.
Компьютерный программный продукт может быть дополнительно выполненный с возможностью выполнения стадии способа:
(III) если установка первого драйвера на (II) неудачна, попытки установить второй драйвер для эмуляции сетевой карты на хосте, соответствующий классу операционной системы, отличающемуся от обнаруженного класса операционной системы хоста, причем установленный второй драйвер выполнен с возможностью обеспечения связи между хостом и устройством, и прекращения способа, если второй драйвер успешно установлен.
Компьютерный программный продукт может быть дополнительно выполненный с возможностью использования любой из стадий способа в соответствии с первым аспектом настоящего изобретения.
Краткое описание чертежей
На Фиг. 1 показаны фронтальная поверхность и тыльная поверхность иллюстративного устройства на той же фигуре. Устройство показано в выключенном состоянии.
На Фиг. 2 показаны фронтальная поверхность и тыльная поверхность иллюстративного устройства на той же фигуре. Устройство показано во включенном состоянии.
На Фиг. 3 показан вид сбоку иллюстративного устройства. Устройство может относиться к устройству на Фиг. 2.
На Фиг. 4 показаны фронтальная поверхность и тыльная поверхность иллюстративного устройства на той же фигуре. Устройство показано во включенном состоянии. Устройство может относиться к устройству на Фиг. 2.
На Фиг. 5 показано устройство в классическом форм-факторе, расположенное внутри съемного корпуса, чтобы образовать комплект устройства.
На Фиг. 6 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 7 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 8 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 9 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 10 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 11 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 12 приведен пример способа установки драйвера для эмуляции сетевой карты для связи между хостом и устройством.
На Фиг. 13 приведен пример последовательности переключения протоколов, исполняемой устройством и результирующая активность устройства.
На Фиг. 14 приведен пример последовательности переключения протоколов, исполняемой устройством и результирующая активность устройства.
На Фиг. 15 показан пример мобильного маршрутизатора с беспроводным соединением WAN с сетью WAN, в котором мобильный маршрутизатор обеспечивает соединения LAN с устройствами LAN.
На Фиг. 16 показан пример мобильного маршрутизатора без беспроводного соединения WAN с сетью WAN, в котором мобильный маршрутизатор не обеспечивает соединения LAN с устройствами.
На Фиг. 17 показан пример мобильного маршрутизатора со слабым беспроводным соединением WAN с сетью WAN, в котором мобильный маршрутизатор не обеспечивает соединения LAN с устройствами.
На Фиг. 18 показан пример мобильного маршрутизатора без беспроводной связи WAN с сетью WAN, в котором мобильный маршрутизатор обеспечивает соединения LAN с устройствами LAN.
На Фиг. 19 показан пример мобильного устройства, который информирует своего пользователя о том, что локальная сеть не доступна на данный момент времени.
На Фиг. 20 показан пример мобильного устройства, который информирует своего пользователя о том, что локальная сеть не доступна, потому что не доступна глобальная сеть.
На Фиг. 21 показан пример мобильного устройства, который информирует своего пользователя о том, что локальная сеть не доступна, потому что сигнал глобальной сети слишком слабый.
На Фиг. 22 показан пример мобильного маршрутизатора, который информирует своего пользователя о том, что локальная сеть не обеспечивается на данный момент времени.
На Фиг. 23 показан пример мобильного маршрутизатора, который информирует своего пользователя о том, что локальная сеть не обеспечивается, потому что глобальна сеть не доступна.
На Фиг. 24 показан пример мобильного маршрутизатора, который информирует своего пользователя о том, что локальная сеть не обеспечивается, потому что сигнал глобальной сети слишком слабый.
Осуществление изобретения
Устройство с последовательностью переключения протоколов
В настоящей области техники предусмотрено устройство, такое как устройство связи, такое как устройство мобильной связи. Примеры устройств мобильной связи включают в себя мобильные телефоны, смартфоны, планшетные компьютеры и ноутбуки с возможностью мобильной связи, мобильные маршрутизаторы и адаптеры USB. Другие средства связи включают в себя маршрутизаторы и модемы.
Чтобы создать истинный опыт режима автоматической конфигурации, авторы настоящего изобретения используют в их устройствах сетевую карту, эмулированную через USB (например, протокол Ethernet-over-USB), для эмуляции обобщенной сетевой карты (например, Ethernet) или WWAN. Ethernet-over-USB изначально поддерживается во многих операционных системах, таких как Linux, UNIX, MacOS, Windows, Android, мобильная OS, планшетная OS, iOS и т.п.
Проблема в том, что различные операционные системы характеризуются различными осуществлениями протокола Ethernet-over-USB. Примеры включают в себя RNDIS (семейство Microsoft Windows), CDC (например, семейство Linux) и может не быть никакого способа для обнаружения типа хоста непосредственно со стороны устройства.
Первый пример: устройство авторов настоящего изобретения характеризуется следующей последовательностью переключения протоколов:
После включения питания на устройстве, эмулируется протокол RNDIS в течение ограниченного времени (например, 5 секунд) и ожидается ответ хоста (например, PC). В случае положительного ответа последовательность переключения протоколов останавливается в этой точке.
В случае отсутствия ответа со стороны хоста, устройство начинает эмулировать протокол CDC.
В случае отсутствия ответа для протокола CDC в течение ограниченного периода времени (например, 5 секунд) устройство начинает эмулировать массовое запоминающее устройство. Массовое запоминающее устройство может обеспечить драйвера для операционной системы, которые не включают в себя предварительно установленный драйвер, например, устаревшие операционные системы.
Согласно примеру первого примера, если последовательность по первому примеру не обеспечивается ответом со стороны хоста, последовательность повторяется.
Второй пример: устройство авторов настоящего изобретения характеризуется следующей последовательностью переключения протоколов:
После включения питания на устройстве, эмулируется первый сетевой протокол через USB (например, протокол Ethernet-over-USB или WWAN), (например, RNDIS (семейство Microsoft Windows), (CDC (например, семейство Linux)) в течение ограниченного времени (например, 5 секунд, но это может зависеть от конфигурации) и ожидается ответ хоста. В случае положительного ответа последовательность переключения останавливается в этой точке.
В случае отсутствия ответа со стороны хоста, устройство начинает эмулировать второй сетевой протокол через USB (например, протокол Ethernet-over-USB или WWAN), (например, RNDIS (семейство Microsoft Windows), CDC (например, семейство Linux)), отличающийся от первого сетевого протокола через USB.
В случае отсутствия ответа для второго сетевого протокола через USB (например, Ethernet-over-USB) или WWAN в течение ограниченного периода времени (например, 5 секунд), устройство начинает эмулировать массовое запоминающее устройство. Массовое запоминающее устройство может обеспечить драйверами для операционной системы, которые не включают в себя предварительно установленный драйвер, например, устаревшие операционные системы.
Пример показан на фигуре 14.
Согласно примеру второго примера, если последовательность по второму примеру не обеспечивается ответом со стороны хоста, последовательность повторяется.
Третий пример: устройство авторов настоящего изобретения характеризуется следующей последовательностью переключения протоколов:
После включения питания на устройстве, эмулируется протокол RNDIS в течение ограниченного времени (например, 5 секунд) и ожидается ответ хоста (например, PC). В случае положительного ответа последовательность переключения останавливается в этой точке.
В случае отсутствия ответа со стороны хоста, устройство начинает эмулировать протокол CDC.
Согласно примеру третьего примера, если последовательность по третьему примеру не обеспечивается ответом со стороны хоста, последовательность повторяется.
Четвертый пример: устройство авторов настоящего изобретения характеризуется следующей последовательностью переключения протоколов:
После включения питания на устройстве, эмулируется первый сетевой протокол через USB (например, протокол Ethernet-over-USB или WWAN), (например, RNDIS (семейство Microsoft Windows), CDC (например, семейство Linux)) в течение ограниченного времени (например, 5 секунд) и ожидается ответ хоста. В случае положительного ответа последовательность переключения останавливается в этой точке.
В случае отсутствия ответа со стороны хоста, устройство начинает эмулировать второй сетевой протокол через USB (например, протокол Ethernet-over-USB или WWAN), (например, RNDIS (семейство Microsoft Windows), CDC (например, семейство Linux)), отличающийся от первого сетевого протокола через USB (например, протокол Ethernet-over-USB или WWAN).
Пример показан на Фиг. 13.
Согласно примеру четвертого примера, если последовательность по четвертому примеру не обеспечивается ответом со стороны хоста, последовательность повторяется.
Версии перечисления USB
В дополнительном примере обнаруживается ОС. В зависимости от ОС, устройства USB перечислены по-разному. В результате, это используется, чтобы отличить типы ОС, например, между типом Windows и типом MacOS X/Linux. Тем не менее, этот способ потенциально может сделать ошибку в будущих версиях ОС, поэтому существуют конкретные стадии для защиты в потоке, предусмотренном авторами настоящего изобретения. Настоящий способ, возможно, может сделать ошибку с существующей версией ОС, так что существуют конкретные стадии для защиты в потоке, предусмотренном авторами настоящего изобретения.
Авторы настоящего изобретения могут добавить функциональность WWAN (беспроводная глобальная сеть) - теперь она поддерживается OS X 10.6, Windows 8 и Linux 2.6.38.
Пример блок-схемы, в которой ОС обнаруживается путем перечисления USB, показан на Фиг. 6.
Авторы настоящего изобретения поясняют переключение протоколов на примере потока на фигуре 6. Разница между примером на фигуре 6 и описанными выше примерами с первого по четвертый заключается в перечислении USB, которое используется для определения операционной системы. Кроме того, для MacOS X и Linux, в частности, авторы настоящего изобретения добавили поддержку технологии WWAN. Мобильная широкополосная технология, также называемая технологией беспроводной глобальной сети (WWAN), обеспечивает беспроводной высокоскоростной доступ в интернет через портативные устройства.
Первая стадия представляет собой определение типа ОС посредством перечисления USB. В зависимости от ОС, она перечисляется USB устройством по-разному. В результате, это используется, чтобы отличить типы ОС между типом Windows и типом MacOS X/Linux. Тем не менее, этот способ потенциально может сделать ошибку в будущих версиях ОС, поэтому в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты. Этот способ, возможно, может сделать ошибку с существующей версией ОС, так что в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты.
Если посредством перечисления USB наблюдаются MacOS или Linux, то осуществляется переход к WWAN в течение ограниченного времени (например, 15 секунд). В случае, в котором установка WWAN была неудачной, осуществляется переход к CDC-ECM в течение ограниченного времени (например, 15 секунд). Если установка CDC-ECM не удалась, предоставляется RNDIS в течение ограниченного времени (например, 30 секунд). В случае, в котором установка драйвера RNDIS была неудачной, предоставляется установка с CD-ROM (с драйверами для WinXP SP3). Если включена функция автозапуска на WinXP SP3 PC, файл INF (драйвер) устанавливается автоматически. Если автозапуск отключен, пользователь устанавливает драйвер вручную с CD-ROM. После завершения установки драйвера, останавливается установка с CD-ROM и предоставляется RNDIS.
Если посредством перечисления USB наблюдается Windows PC, то осуществляется переход к RNDIS в течение ограниченного времени (например, 30 секунд). В случае, в котором установка драйвера RNDIS была неудачной, предоставляется WWAN в течение ограниченного времени (например, 15 секунд). Если установка WWAN была неудачной, осуществляется переход к CDC-ECM в течение ограниченного времени (например, 15 секунд). В случае, в котором установка CDC-ECM была неудачной, осуществляется переход к предоставлению установки с CD-ROM. Если включена функция автозапуска на WinXP SP3 PC, файл INF (драйвер) устанавливается автоматически. Если автозапуск отключен, пользователь устанавливает драйвер вручную с CD-ROM. После завершения установки драйвера, останавливается установка с CD-ROM и предоставляется RNDIS.
В случае положительного ответа на стадии предоставления RNDIS, CDC-ECM или WWAN, последовательность переключение останавливается в этой точке.
Согласно примеру показанного на Фиг. 6 способа после перечисления USB отслеживаются попытки установить драйверы. После неудачной попытки, предпринятой для установки драйвера, не предпринимается никаких попыток установить тот же драйвер снова. После предпринятых неудачных попыток установки всех доступных драйверов способ прекращается.
Согласно примеру показанного на Фиг. 6 способа после перечисления USB, попытки установить драйверы отслеживаются. После неудачной попытки, предпринятой для установки драйвера, не предпринимается никаких попыток установить тот же драйвер снова в течение настоящего цикла петли потока. После предпринятых неудачных попыток установки всех доступных драйверов, петля потока выполняет один цикл.
Пример блок-схемы, в которой ОС обнаружена путем перечисления USB показан на Фиг. 7.
Первая стадия представляет собой определение типа ОС посредством перечисления USB. В зависимости от ОС она перечисляет устройства USB по-разному. В результате, это используется, чтобы отличить типы ОС, например, между первым классом ОС (например, тип Windows) и вторым классом ОС (например, тип MacOS X/Linux). Тем не менее, этот способ потенциально может сделать ошибку в будущих версиях ОС, поэтому в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты от таких ошибок. Этот способ, возможно, может сделать ошибку с существующей версией ОС, так что в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты.
Если перечисление USB определяет, что ОС от первого класса ОС, то способ переходит к блоку (В). Затем проверяется, содержит ли хост устройство правильный драйвер для связи с совместимым USB-устройством. Если проверка показывает, что хост устройство не содержит правильного драйвера, делается попытка установить правильный драйвер. Эта стадия ждет в течение предварительно определенного времени результат, что правильный драйвер был успешно установлен на хост. Если было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хост, то совместимое USB-устройство переходит к связи с хостом в контексте первого класса ОС. Если не было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хосте, то способ переходит к блоку (А).
Если перечисление USB определяет, что ОС от первого класса ОС, то способ переходит к блоку (А). Затем проверяется, содержит ли хост устройство правильный драйвер для связи с совместимым USB-устройством. Если проверка показывает, что хост устройство не содержит правильного драйвера, делается попытка установить правильный драйвер. Эта стадия ждет в течение предварительно определенного времени результат о том, что правильный драйвер был успешно установлен на хост. Если было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хост, то совместимое USB-устройство переходит к связи с хостом в контексте второго класса ОС. Если не было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хосте, способ переходит к блоку (В).
Тем не менее, согласно примеру показанного на Фиг. 7 способа после перечисления USB отслеживаются попытки установить драйверы. После неудачной попытки, предпринятой для установки драйвера, не предпринимается никаких попыток установить тот же драйвер снова. После предпринятых неудачных попыток установки всех доступных драйверов, способ прекращается.
Пример показанного на Фиг. 7 способа показан на Фиг. 9. На Фиг. 9 отслеживаются попытки установить драйверы. После неудачной попытки, предпринятой для установки драйвера, после перечисления USB не предпринимается никаких попыток установить тот же драйвер снова. После предпринятых неудачных попыток установки всех доступных драйверов, способ предлагает пользователю подсоединить физический носитель к хосту. Подключение физического носителя к хосту может включать в себя помещение CD-ROM с файлами драйверов, соответствующих ОС хоста, в хост CD-ROM накопителя. Подключение физического носителя к хосту может включать в себя подключение USB FLASH накопителя, внешнего жесткого диска или любой другой внешней памяти с файлами драйверов, соответствующих ОС хоста к хосту. Затем файл INF (драйвер INF) или его эквивалент устанавливается путем автозапуска или, если автозапуск не работоспособный, пользователь устанавливает файл INF (драйвер INF) или его эквивалент вручную. Специалисту в настоящей области техники будет понятно, что на Фиг. 9 цель потока представляет собой эмуляцию установки CD-ROM: идеально драйвер будет установлен без помещение пользователем CD-ROM в хост.
Пример показанного на Фиг. 7 способа показан на Фиг. 11. На Фиг. И отслеживаются попытки установить драйверы после перечисления USB. После неудачной попытки, предпринятой для установки драйвера, не предпринимается никаких попыток установить тот же драйвер снова. После предпринятых неудачных попыток установки всех доступных драйверов, способ предлагает пользователю подсоединить хост к серверу поставщика ОС или к серверу, который содержит необходимый драйвер. Затем файл INF (драйвер INF) или его эквивалент устанавливается с сервера поставщика ОС или с сервера, который содержит необходимый драйвер.
Способы, примеры которых показаны на Фиг. 7, 9 и 11, характеризуются таким преимуществом, что связи USB совместимого устройства представляют собой устойчивые к непредвиденным изменениям в будущих операционных системах первого класса или в будущих операционных системах второго класса. Например, если будущая операционная система первого класса приводит ее к появлению результата теста перечисления USB, что эта ОС второго класса, то драйвер, соответствующий второму классу, устанавливается на хост не успешно, так как хост представляет собой ОС первого класса. В результате, совместимое USB-устройство перейдет к попытке установить драйвер первого класса ОС, который в случае успеха разрешит совместимому USB-устройству успешно взаимодействовать с хостом, который содержит операционную систему первого класса, несмотря на то, что тест перечисление USB первоначально идентифицировал класс операционной системы хоста неправильно.
Пример блок-схемы, в которой ОС обнаружена путем перечисления USB показан на Фиг. 8.
Первая стадия представляет собой определение типа ОС посредством перечисления USB. В зависимости от ОС, она перечисляет USB-устройства по-разному. В результате, это используется для отличия типа ОС между n классами ОС, где n равно по меньшей мере 3, включающих в себя первый класс ОС (например, тип Windows), второй класс ОС (например, тип MacOS X/Linux) и так далее. Тем не менее, этот способ потенциально может допустить ошибку в будущих версиях ОС, поэтому в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты от такой ошибки. Этот способ, возможно, может допустить ошибку с существующей версией ОС, поэтому в потоке, предусмотренном авторами настоящего изобретения, существуют конкретные стадии для защиты.
Если перечисление USB определяет, что ОС от первого класса ОС, то способ переходит к блоку класса 1. Затем проверяется, содержит ли хост-устройство правильный драйвер для связи с совместимым USB-устройством. Если проверка показывает, что хост-устройство не содержит правильного драйвера, делается попытка установить правильный драйвер. Эта стадия ждет в течение предварительно определенного времени результат, что правильный драйвер был успешно установлен на хост. Если было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хост, то совместимое USB-устройство переходит к связи с хостом в контексте первого класса ОС. Если не было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хост, то способ переходит к блоку класса 2.
Если перечисление USB определяет, что ОС от второго класса ОС, то способ переходит к блоку класса 1. Затем проверяется, содержит ли хост-устройство правильный драйвер для связи с совместимым USB-устройством. Если проверка показывает, что хост-устройство не содержит правильного драйвера, делается попытка установить правильный драйвер. Эта стадия ждет в течение предварительно определенного времени результат, что правильный драйвер был успешно установлен на хост. Если было определено до того как прошло предварительно определенное время, что правильный драйвер был успешно установлен на хост, то совместимое USB-устройство переходит к связи с хостом в контексте второго класса ОС. Если не было определено до того как прошло предварительно определенное время, что правильный драйвер был успеш