BRPI0617793A2 - atualizações de controlador de vìdeo que dispensam reinicialização - Google Patents

atualizações de controlador de vìdeo que dispensam reinicialização Download PDF

Info

Publication number
BRPI0617793A2
BRPI0617793A2 BRPI0617793-0A BRPI0617793A BRPI0617793A2 BR PI0617793 A2 BRPI0617793 A2 BR PI0617793A2 BR PI0617793 A BRPI0617793 A BR PI0617793A BR PI0617793 A2 BRPI0617793 A2 BR PI0617793A2
Authority
BR
Brazil
Prior art keywords
video controller
controller
hardware
specific
starting
Prior art date
Application number
BRPI0617793-0A
Other languages
English (en)
Inventor
Marcus J Andrews
Max A Mcmullen
Sameer A Nene
Youssef M Barakat
Ameet A Chitre
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37998133&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI0617793(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0617793A2 publication Critical patent/BRPI0617793A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

ATUALIZAçõES DE CONTROLADOR DE VIDEO QUE DISPENSAM REINICIALIZAçAO São revelados sistemas e métodos para atualizar, sem necessidade de reinicialização, um controlador de vídeo IHV. De acordo com esse método, primeiramente, o sistema operacional interrompe a execução do controlador. Em segundo lugar, o sistema muda para um controlador de vídeo provisório ou temporário, que pode ser um controlador padrão fornecido junto com o sistema operacional. Em terceiro lugar, o novo controlador específico do hardware é iniciado. Dessa forma, um controlador de vídeo específico do hardware pode ser atualizado sem reiniciar o computador.

Description

"ATUALIZAÇÕES DE CONTROLADOR DE VÍDEO QUEDISPENSAM REINICIALIZAÇÃO"
ANTECEDENTES DA INVENÇÃO
A reinicialização sempre foi necessária ao atuali-zar um controlador de vídeo (isto é, um controlador de vídeoque pode ser usado para controlar o meio de exibição gráficade vídeo associado a um hardware). Esse controlador de vídeoespecífico do hardware pode ser referido como um controladorde vídeo de fornecedor independente de hardware (IHV).
Nos sistemas operacionais anteriores, não era pos-sível atualizar o controlador de vídeo sem necessitar de re-inicialização. A arquitetura gráfica desses sistemas opera-cionais não admitia que o controlador de vídeo tivesse seufuncionamento totalmente "interrompido" e que em seguidafosse atualizado dinamicamente para um controlador de vídeomais atualizado. Por exemplo, os recursos do controladornormalmente precisam ser liberados para trocar para um novocontrolador. Nos sistemas operacionais previamente disponí-veis, não havia uma forma de se liberar os recursos. Comoconseqüência, o usuário tinha de desligar o computador paraliberar os recursos. Para que o lado de núcleo do sistemaoperacional pudesse reconhecer a presença de um controladornovo, o usuário tinha de reiniciar o computador. Além disso,um controlador geralmente é usado por diversos clientes. Nossistemas operacionais previamente disponíveis, não haviameio de fazer com que os clientes parassem de usar o contro-lador. Sendo assim, se os clientes não podiam ser impedidosde usar o controlador, então o controlador não podia ser al-terado. A reinicialização do sistema fazia com que todos osclientes parassem de usar (isto é, se desconectassem do)controlador. Seria proveitoso, entretanto, se um controladorde video pudesse ser atualizado sem que o computador tivessede ser reinicializado, enquanto mantendo certa funcionalida-de, tal como 2D por exemplo, e a condição atual do sistemaoperacional.
SUMÁRIO
Conforme revelado pelo presente documento, um con-trolador de video especifico do hardware atualmente em exe-cução pode ser dinamicamente alterado para um novo controla-dor de video, enquanto o hardware continua em funcionamento.
Esse método pode incluir três etapas. Em primeiro lugar, me-diante a solicitação para atualizar o controlador atualmenteem execução, o sistema operacional pára a execução do con-trolador. Em segundo lugar, o sistema muda para um controla-dor de video provisório ou temporário. 0 controlador de vi-deo provisório pode ser um controlador padrão que acompanhao sistema operacional (tal como o controlador VGA contido nosistema operacional Microsoft WINDOWS). Em terceiro lugar, onovo controlador especifico do hardware é iniciado. O estado3D é restaurado, e a GPU continua a funcionar normalmente,com todas as funcionalidades. Dessa forma, um controlador devideo especifico do hardware pode ser atualizado sem reini-cialização.
BREVE DESCRIÇÃO DOS DESENHOS
A FIG. 1 é um fluxograma de um método para atuali-zar um controlador de video sem reinicialização.A FIG.. 2 é um fluxograma de um método para inter-romper um controlador de vídeo específico do hardware atual-mente em execução.
A FIG. 3 é um fluxograma de um método para iniciarum novo controlador de vídeo específico do hardware.
A FIG. 4 é um diagrama de blocos ilustrando um am-biente de computação exemplificativo em que os aspectos dainvenção podem ser implementados.
DESCRIÇÃO DETALHADA DAS CONCRETIZAÇÕESILUSTRATIVAS
A FIG. 1 é um fluxograma de um método para atuali-zar um controlador de vídeo específico do hardware sem rei-nicialização. Na etapa 10, o sistema operacional detecta queum usuário solicitou a atualização de um controlador de ví-deo. 0 usuário pode realizar tal solicitação, por exemplo,baixando o controlador de vídeo atualizado para a memória docomputador hospedeiro (host) a partir da Rede(Web), ou car-regando o controlador atualizado para a memória do computa-dor hospedeiro a partir de um CD.
Para instalar o controlador de vídeo atualizado nocomputador hospedeiro, o usuário pode executar o chamado"mecanismo de instalação" no computador hospedeiro. Na etapa20, o mecanismo de instalação copia os arquivos associadosao controlador de vídeo atualizado para a memória do compu-tador hospedeiro. Deve-se compreender que, nos sistemas an-teriores, tais novos arquivos do controlador de vídeo eramdepositados em algum lugar na memória, e, quando da próximainicialização, eram detectados e usados. Em um sistema con-forme revelado pelo presente documento, os novos arquivospodem ser copiados como nos sistemas anteriores, e armazena-dos na memória até que o novo controlador seja iniciado(conforme descrito em detalhes abaixo).
Na etapa 30, o controlador especifico do hardwareatualmente em execução é interrompido. Um método para inter-romper um controlador de video especifico do hardware atual-mente em execução é descrito em detalhes abaixo, com relaçãoà FIG. 2. Na etapa 40, o controle é passado para um contro-lador de video provisório. O controlador de video provisóriopode ser um controlador padrão fornecido junto com o sistemaoperacional (tal como o controlador VGA contido no sistemaoperacional Microsoft WINDOWS). Quando o controlador especi-fico do hardware atualmente em execução é interrompido, nãohá nenhum controlador de video em execução no sistema. Issoresultaria em uma tela preta e numa situação desagradávelpara o usuário. Para evitar isso, o controlador VGA, que jáfoi carregado para o sistema, começa então a ser usado. Atéque o novo controlador especifico do hardware seja instala-do, a área de trabalho é exibida usando o controlador VGA.
Para que o hardware desenhe algo na tela, ele pre-cisa ter alguns recursos alocados a ele. Estes são alocadospelo sistema operacional ao hardware gráfico. Logo, quando ocontrolador atualmente em execução é interrompido na etapa30, ainda há recursos suficientes alocados para permitir queo controlador padrão seja executado nesse ínterim. Por exem-plo, certos recursos de memória e de E/S podem permaneceralocados. Deve-se compreender que isso é diferente do queaconteceria na maioria das pilhas. Para a maioria dos dispo-sitivos, todos os recursos seriam liberados após o controla-dor ser interrompido, uma vez que, após o controlador tersido interrompido, o uso do hardware seria proibido. Na eta- pa 50, o controlador de video especifico do hardware atuali-zado é iniciado. Um método para iniciar um novo controladorde video especifico do hardware é descrito em detalhes abai-xo, com relação à FIG. 3. Dessa forma, um controlador de vi-deo especifico do hardware pode ser atualizado sem reiniciaro computador.
A FIG. 2 é um fluxograma de um método para inter-romper um controlador de video para hardware especifico atu-almente em execução. Quando o usuário aciona a atualizaçãodo controlador de video atualmente em uso, ele dá inicio auma seqüência para interromper o dispositivo e atualizá-lo.Na etapa 31, o Gerenciador Plug-and-Play (PnP) , ao identifi-car uma solicitação de atualização do controlador (partidado usuário, tal como ao baixar um novo controlador da Redeetc.), inicia esse processo enviando uma mensagem de notifi-cação, tal como um pacote de solicitação E/S (IRP) , para apilha do dispositivo gráfico. A mensagem de notificação or-dena que o dispositivo faça tudo que tenha de ser feito paraliberar todas as dependências do software do controlador devideo.· Este IRP pode ser manuseado por um subcomponente(DxgPort) do núcleo do sistema operacional (DxgKrnl.sys).
Há duas categorias de clientes que precisam serpausadas. Em primeiro lugar, Win32K, a parte mais antiga(2D) da pilha gráfica no WINDOWS (GDI) é interrompido na e-tapa 32.
Notifica-se ao shell do sistema operacional parainterromper o uso do dispositivo. Além disso, o núcleo pausatodos os clientes.
Na etapa 33, a segunda categoria de clientes épausada. A segunda categoria inclui clientes Direct3D. Quan-do esses clientes são pausados, tudo que estava alocado emnome desses clientes já foi excluído. Quando a etapa 33 éterminada, nada do que estava associado ao controlador IHVserá deixado no modo de núcleo. A esta altura, não há ativi-dade do Gerenciador de Memória de Vídeo e do Programador deVídeo. Na etapa 34, ao identificar a solicitação do gerenci-ador PnP, o DxgPort chama o controlador de modo de núcleoIHV por meio de sua DLL "DmStopDevice"registrada. 0 sistemaoperacional instrui o controlador de vídeo a limpar qualquermemória, por exemplo, ou qualquer outra coisa que o contro-lador de vídeo tenha de limpar. 0 controlador IHV é respon-sável por limpar seu estado nessa função. Ele libera todosos recursos alocados e desfaz todas as atividades que o con-trolador iniciou na função DmStartDevice.
Após a etapa 34, sempre que um aplicativo solicitaa criação de gráficos, o aplicativo é informado de que ohardware não está disponível e de que o aplicativo deve lim-par quaisquer recursos próprios. Na etapa 35, o tempo de e-xecução do DirectX recebe uma notificação "DeviceLost"("Dispositivo Perdido") do DxgKrnl. Essa notificação éenviada, na etapa 36, para os aplicativos DirectX. Os novosaplicativos DirectX9L destruirão seus objetos de dispositi-vο. O DirectX9 e os aplicativos previamente gravados podemou não podem destruir o dispositivo. Deve-se compreender queDirectX refere-se aos gráficos 3D do WINDOWS (dxg = gráficosdirectx).
De preferência, os aplicativos são notificadosquanto ao novo controlador apenas quando eles solicitam acriação de gráficos. Ou seja, quando desejarem usar o con-trolador antigo, serão avisados de que ele está indisponí-vel. Então, os novos aplicativos DirectX9L redirecionam-separa o novo controlador (que é o controlador IHV atualiza-do) . Quando o DirectX9 e os aplicativos previamente gravadosdescobrem que o controlador antigo foi descarregado, o tempode execução D3D engana o aplicativo, fingindo que o contro-lador ainda está lá. A FIG. 3 é um fluxograma de um métodopara iniciar um novo controlador de vídeo específico dohardware. Após os arquivos do controlador terem sido copia-dos com êxito, o mecanismo de instalação informa o gerencia-dor PnP. Em seguida, o gerenciador PnP carrega o novo con-trolador de dispositivo para a memória. Na etapa 51, o ge-renciador PnP envia à pilha gráfica (dxgport) uma mensagemde notificação para adicionar um novo dispositivo. 0 Geren-ciador PnP chama, então a rotina "AddDevice" no DxgPort e,logo após, o controlador IHV. Na etapa 52, o gerenciador PnPenvia à pilha grafica uma mensagem de notificação (IRP) parainiciar o novo dispositivo.
Na etapa 53, o núcleo (pilha gráfica) interrompe ocontrolador provisório. De preferência, o controlador VGAtem sua execução interrompida, mas continua carregado. Umatela preta pode surgir por um instante.
Na etapa 54, a pilha gráfica chama o controladorde video atualizado por meio de uma interface de controladorde dispositivo ("DDI") que inicia o hardware gráfico e alocaos recursos de controlador de video necessários. A pilhagráfica informa ao novo controlador IHV que inicie. Na etapa55, a pilha gráfica notifica ao núcleo para criar os objetoscorrespondentes para o adaptador. Estes foram destruídosquando o dispositivo foi interrompido. Na etapa 56, os obje-tos gráficos 2D são restaurados. O Win32K é notificado paracriar as visualizações correspondentes e seus objetos dedispositivo gráfico. Objetos do monitor também são criadosnesse ponto por meio da pilha gráfica do núcleo. Na etapa57, os objetos gráficos 3D são restaurados. O software degráficos 3D solicita que os aplicativos recriem seus objetosde dispositivo, após o que os aplicativos podem reiniciar oprocessamento gráfico, isto é, usando o controlador novo eatualizado.
Ambiente de Computação Exemplificativo
A FIG.4 e a argumentação a seguir têm a intençãode oferecer uma descrição geral breve de um ambiente de com-putação no qual uma concretização exemplificativa da inven-ção pode ser implementada. No entanto, deve-se compreenderque dispositivos de computação de mão, portáteis e outrosdispositivos de computação de todos os tipos são contempla-dos para uso em relação à presente invenção. Embora um com-putador de uso geral seja descrito abaixo, isto é apenas umexemplo. A presente invenção também pode ser operável em umcliente fino com interoperabilidade e interação com o servi-dor de rede. Sendo assim, uma concretização exemplificativada invenção pode ser implementada em um ambiente de serviçoshospedeiros em rede nos quais pouquíssimos ou o mínimo derecursos são exigidos do cliente, por exemplo, um ambienteem rede no qual o dispositivo cliente funciona simplesmentecomo um navegador ou interface para a Rede Mundial de Compu-tadores.
Ainda que não seja necessário, a invenção pode serimplementada por meio de uma interface de programação de a-plicativos (API), para ser usada por um programador ou tes-tador, e/ou incluída dentro do software de navegação de redeque será descrito no contexto geral de instruções executá-veis por computador, tais como módulos de programa, sendoexecutados por um ou mais computadores (por exemplo, esta-ções de trabalho cliente, servidores ou outros dispositi-vos). Geralmente, os módulos de programa incluem rotinas,programas, objetos, estruturas de dados e seus semelhantesque efetuam tarefas específicas ou implementam tipos de da-dos abstratos específicos. Normalmente, a funcionalidade dosmódulos de programa pode ser combinada ou distribuída con-forme desejado em várias concretizações. Ademais, os versa-dos na técnica apreciarão que a invenção pode ser praticadacom outras configurações de sistema de computador. Outrossistemas, ambientes e/ou configurações de computação bem co-nhecidos que podem ser adequados para uso com a invenção in-cluem, sem a isto se restringir, computadores pessoais(PCs), caixas eletrônicos, computadores servidores, disposi-tivos portáteis ou laptop, sistemas multiprocessadores, sis-temas baseados em microprocessador, componentes eletrônicosprogramados pelo consumidor, PCs de rede, microcomputadores,computadores de grande porte, entre outros. Uma concretiza-ção da invenção também pode ser praticada em ambientes decomputação distribuída onde são efetuadas tarefas por dispo-sitivos de processamento remoto ligados por meio de uma redede comunicações ou por outro meio de transmissão de dados.
Em um ambiente de computação distribuída, os módulos de pro-grama podem estar localizados tanto em meios de armazenamen-to de computador remotos quanto locais, incluindo dispositi-vos de armazenamento em memória.
Sendo assim, a FIG. 4 ilustra um exemplo de um am-biente de sistema de computação adequado 100 no qual a in-venção pode ser implementada, embora, conforme deixado claroacima, o ambiente de sistema de computação 100 seja apenasum exemplo de um ambiente de computação adequado e não tenhaa intenção de sugerir qualquer limitação ao âmbito de uso oufuncionalidade da invenção. Tampouco se deve interpretar oambiente de computação 100 como tendo qualquer dependênciaou exigência com relação a qualquer um dos componentes ilus-trados, ou combinação desses, no ambiente operacional exem-plificativo 100.
Com referência à FIG. 4, um sistema exemplificati-vo para implementação da invenção inclui um dispositivo decomputação de uso geral na forma de um computador 110. Oscomponentes do computador 110 podem incluir, sem a isto serestringir, uma unidade de processamento 120, uma memória desistema 130 e um barramento de sistema 121 que acopla várioscomponentes do sistema, incluindo a memória do sistema, àunidade de processamento 120. O barramento de sistema 121pode possuir qualquer um dos diferentes tipos de estruturade barramento, incluindo um barramento de memória ou contro-lador de memória, um barramento periférico e um barramentolocal usando qualquer uma das diferentes arquiteturas debarramento. A titulo exemplificativo, sem limitação, taisarquiteturas incluem barramento da Arquitetura Padrão da In-dústria (ISA), barramento da Arquitetura de Microcanal(MCA), barramento ISA Aperfeiçoada (EISA), barramento localda Associação de Padrões Eletrônicos de Video (VESA) e bar-ramento de Interconexão de Componentes Periféricos (PCI)(também chamado de barramento Mezanino).
0 computador 110 geralmente inclui uma variedadede meios legíveis por computador. Meios legíveis por compu-tador podem ser quaisquer meios disponíveis que podem seracessados pelo computador 110 e que incluem tanto meios vo-láteis e não-voláteis quanto meios removíveis e não-removíveis. A título exemplificativo, sem limitação, meioslegíveis por computador podem compreender meios de armazena-mento e meios de comunicação de computador. Os meios de ar-mazenamento de computador incluem tanto meios voláteis enão-voláteis quanto removíveis e não-removíveis implementa-dos em qualquer método ou tecnologia para armazenamento deinformações, tais como instruções legíveis por computador,estruturas de dados, módulos de programa ou outros dados. Osmeios de armazenamento incluem, sem a isto se restringir,memória de acesso aleatório (RAM), memória somente para lei-tura (ROM), Memória Somente para Leitura Programável e Ele-tricamente Apagável (EEPROM), memória flash ou outra tecno-logia de memória, memória somente para leitura em disco com- pacto (CD-ROM), discos versáteis digitais (DVD) ou outro ar-mazenamento em disco óptico, cassetes magnéticos, fita mag-nética, armazenamento em disco magnético ou outros disposi-tivos de armazenamento magnético, ou qualquer outro meio quepossa ser usado para armazenar as informações desejadas e que possa ser acessado pelo computador 110. Os meios de co-municação geralmente abrangem instruções legíveis por compu-tador, estruturas de dados, módulos de programa ou outrosdados em um sinal de dados modulado, tal como uma onda por-tadora ou outro mecanismo de transporte, e incluem quaisquer meios de distribuição de informações. O termo "sinal de da-dos modulados" refere-se a um sinal que tem uma ou mais desuas características ajustadas ou alteradas de tal maneira acodificar as informações no sinal. A título exemplificativo,e sem limitação, os meios de comunicação incluem meios com fio, tal como uma rede com fio ou conexão direta com fio, emeios sem fio, tal como acústico, radiofreqüência, infraver-melho e outros meios sem fio. Combinações de qualquer um doselementos anteriores também deverão ser incluídas no âmbitode meios legíveis por computador.
A memória do sistema 130 inclui meios de armazena-mento de computador na forma de memória volátil e/ou não vo-látil, tal como ROM 131 e RAM 132.
Um sistema básico de entrada/saída 133 (BIOS) ,contendo as rotinas básicas para ajudar a transferir infor-mações entre os elementos dentro do computador 110, tal comodurante a inicialização, é geralmente armazenado na ROM 131.A RAM 132 geralmente contém dados e/ou módulos de programaque podem ser acessados a qualquer momento e/ou que estãosendo operados pela unidade de processamento 120. A tituloexemplificativo, e sem limitação, a FIG. 4 ilustra o sistemaoperacional 134, programas aplicativos 135, outros módulosde programa 136, e dados de programa 137. A RAM 132 podeconter outros dados e/ou módulos de programa. O computador110 também inclui outros meios de armazenamento de computa-dor removiveis/não-removiveis e voláteis/não-voláteis. A ti-tulo meramente exemplificativo, a FIG. 4 ilustra uma unidadede disco rígido 141 que lê ou grava em meios magnéticos não-removíveis e não-voláteis, uma unidade de disco magnético151 que lê ou grava em um disco magnético removível e não-volátil 152, e uma unidade de disco óptica 155 que lê ou es-creve em um disco óptico removível e não-volátil 156, talcomo um CD-ROM ou outros meios ópticos. Outros meios de ar-mazenamento de computador removíveis/não-removíveis e volá-teis/não-voláteis que podem ser usados no ambiente operacio-nal exemplificativo incluem, mas sem a isto se restringir,cassetes de fita magnética, cartões de memória flash, discosversáteis digitais, fitas de vídeo digital, RAM de estadosólido, ROM de estado sólido, entre outros. A unidade dedisco rígido 141 é geralmente conectada ao barramento dosistema 121 por meio de uma interface de memória não-removível, tal como a interface 140, e a unidade de discomagnético 151 e a unidade de disco óptico 155 são geralmenteconectadas ao barramento de sistema 121 por uma interface dememória removível, tal como a interface 150.
As unidades e seus meios de armazenamento de com-putador associados, discutidos acima na FIG. 4, fornecem oarmazenamento de instruções legíveis por computador, estru-turas de dados, módulos de programa e outros dados para ocomputador 110. Na FIG. 4, por exemplo, a unidade de discorígido 141 é ilustrada armazenando · o sistema operacional144, os programas aplicativos 145, outros módulos de progra-ma 14 6, e dados de programa 147. Observe que esses componen-tes podem ou ser os mesmos ou ser diferentes do sistema ope-racional 134, dos programas aplicativos 135, dos outros mó-dulos de programa 136 e dos dados de programa 137. O sistemaoperacional 144, os programas aplicativos 145, os outros mó-dulos de programa 14 6 e os dados de programa 147 recebem nú-meros diferentes neste documento para mostrar que se tratam,no mínimo, de cópias diferentes. Um usuário pode entrar comcomandos e informações no computador 110 por meio de dispo-sitivos de entrada, tais como um teclado 162 e o dispositivode apontamento 161, normalmente chamado de mouse, trackballou superfície de toque. Outros dispositivos de entrada (nãoilustrados) podem incluir um microfone, joystick, controlede jogo, antena de satélite, scanner, entre outros. Esses eoutros dispositivos de entrada são geralmente conectados àunidade de processamento 120 a-f por meio de uma interfacede entrada do usuário 160 que é acoplada ao barramento dosistema 121, mas que pode ser conectada por outra interfacee estruturas de barramento, tal como uma porta paralela,porta de jogo ou um barramento serial universal (USB) . Ummonitor 191, ou outro tipo de dispositivo de exibição, tam-bém é conectado ao barramento de sistema 121 por meio de umainterface, tal como uma interface de video 190. Além do mo-nitor, os computadores também podem incluir outros periféri-cos de saida, tais como alto-falantes 197 e impressora 196,que podem ser conectados por meio de uma interface periféri-ca de saida 195.
0 computador 110 pode operar em um ambiente em re-de usando conexões lógicas com um ou mais computadores remo-tos, tal como o computador remoto 180. 0 computador remoto
180 pode ser um computador pessoal, um servidor, um rotea-dor, um PC de rede, um dispositivo não hierarquizado ou ou-
tro' nó comum da rede, e geralmente inclui muitos ou todos oselementos supramencionados com relação ao computador 110,apesar de apenas um dispositivo de armazenamento em memória
181 ter sido ilustrado na FIG 4. As conexões lógicas ilus-tradas na FIG. 4 incluem uma rede local (LAN) 171 e uma redede longa distância (WAN) 173, mas também pode incluir outrasredes. Tais ambientes de rede são comuns em escritórios, re-des de computador a nivel empresarial, intranets e a Inter-net .
Quando usado em um ambiente em rede LAN, o compu-tador 110 é conectado à LAN 171 por meio de uma interface derede ou adaptador 170. Quando usado em um ambiente em redeWAN, o computador 110 geralmente inclui um modem 172 ou ou-tros meios para estabelecer comunicações pela WAN 173, talcomo a Internet. O modem 172, que pode ser interno ou exter-no, pode ser conectado ao barramento do sistema 121 por meioda interface de entrada do usuário 160, ou por outro meca-nismo apropriado. Em um ambiente em rede, os módulos de pro-grama representados com relação ao computador 110, ou partesdeles, podem ser armazenados no dispositivo de armazenamentoem memória remoto. A titulo exemplificativo, e sem limita-ção, a FIG. 4 ilustra programas aplicativos remotos 185 comoresidentes no dispositivo de memória 181. Apreciar-se-á queas conexões de rede ilustradas são exemplif icativas e queoutros meios para estabelecer uma ligação de comunicaçõesentre os computadores podem ser usados. Os versados na téc-nica apreciarão que um computador 110 ou outros dispositivosclientes possam ser organizados como parte de uma rede decomputadores. Sob esse aspecto, a presente invenção pertencea qualquer sistema de computador com qualquer quantidade deunidades de memória ou armazenamento, e qualquer quantidadede aplicativos e processos ocorrendo ao longo de qualquerquantidade de unidades de armazenamento ou volumes. Umaconcretização da presente invenção pode ser aplicada a umambiente com computadores servidores e computadores clientesorganizados em um ambiente em rede com armazenamento remotoou local. A presente invenção também pode ser aplicada a umdispositivo de computação autônomo com funcionalidade delinguagem de programação, capacidades de interpretação e e-xecução. Sendo assim, foram descritos sistemas e métodos pa-ra atualização de um controlador de vídeo que dispensa rei-nicialização. Embora a invenção tenha sido descrita com re-lação a certas concretizações preferidas representadas nasvárias figuras, deve-se compreender que outras concretiza-ções semelhantes podem ser usadas, e que podem ser feitasmodificações ou adições às concretizações descritas parapraticar a invenção sem divergir delas. Portanto, a presenteinvenção não deve se limitar a nenhuma concretização indivi-dual, mas, em vez disso, deve ser interpretada em amplitudee no âmbito de acordo com as reivindicações em anexo.

Claims (20)

1. Método que dispensa reinicialização para atua-lizar um controlador de video especifico do hardware em umcomputador hospedeiro, o método sendo CARACTERIZADO por com-preender :interromper um controlador de video especifico dohardware atualmente em execução; einiciar um controlador de video especifico dohardware atualizado sem reiniciar entre a etapa de interrom-per o controlador de video especifico do hardware atualmenteem execução e a etapa de iniciar o controlador especifico dohardware atualizado.
2. Método, de acordo com a reivindicação 1,CARACTERIZADO por adicionalmente compreender:detectar uma solicitação de atualização do contro-lador de video; einterromper o controlador de video especifico dohardware atualmente em execução em resposta à solicitação deatualização.
3. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que um mecanismo de instalaçãocopia arquivos associados ao controlador de video atualizadopara a memória do computador hospedeiro.
4. Método, de acordo com a reivindicação 1,CARACTERIZADO por adicionalmente compreender:iniciar um controlador de video provisório no com-putador hospedeiro.
5. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que o controlador de vídeo provi-sório é um controlador padrão fornecido junto com o sistemaoperacional.
6. Método, de acordo com a reivindicação 5,CARACTERIZADO pelo fato de que, após o controlador atualmen-te em execução ser interrompido, recursos suficientes perma-necem alocados para permitir que o controlador padrão sejaexecutado nesse ínterim.
7. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a etapa de interromper o con-trolador de vídeo específico do hardware atualmente em exe-cução compreende um Gerenciador plug-and-play (PnP) que en-via, a uma pilha de dispositivo gráfico, uma notificação pa-ra liberar uma dependência do software controlador de vídeo.
8. Método, de- acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a etapa de interromper o con-trolador de vídeo específico do hardware atualmente em exe-cução compreende pausar um cliente de exibição no vídeo.
9. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a etapa de interromper o con-trolador de vídeo específico do hardware atualmente em exe-cução compreende informar ao controlador de vídeo para lim-par seu estado.
10. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a etapa de iniciar o contro-lador de vídeo específico do hardware atualizado compreendeum Gerenciador plug-and-play (PnP) que envia, a uma pilha dedispositivo gráfico, uma notificação para adicionar e inici-ar o novo dispositivo.
11. Método, de acordo com a reivindicação 4,CARACTERIZADO pelo fato de que a etapa de iniciar o contro-lador de video especifico do hardware atualizado compreendeinterromper o controlador provisório.
12. Método que dispensa reinicialização para tran-sitar para um controlador de video especifico do hardwareatualizado em um computador hospedeiro, o método sendoCARACTERIZADO por compreender:interromper a execução de um primeiro controladorde video especifico do hardware no computador hospedeiro;iniciar um segundo controlador de video associadoao hardware;receber uma chamada de um aplicativo para realizaruma operação gráfica associada ao primeiro controlador devideo; einformar o aplicativo de que o hardware está in-disponível,em que, em resposta à informação de que o hardwareestá indisponível, o aplicativo redireciona-se para o segun-do controlador de vídeo.
13. Método, de acordo com a reivindicação 12,CARACTERIZADO pelo fato de que a chamada do aplicativo é re-cebida após o primeiro controlador de vídeo ser interrompi-do.
14. Método, de acordo com a reivindicação 12,CARACTERIZADO por adicionalmente compreender:iniciar um controlador de vídeo provisório associ-ado ao hardware antes de iniciar o segundo controlador devideo.
15. Método, de acordo com a reivindicação 12,CARACTERIZADO por adicionalmente compreender:iniciar um terceiro controlador de video associadoao hardware após iniciar o segundo controlador de video.
16. Método, de acordo com a reivindicação 15,CARACTERIZADO pelo fato de que o terceiro controlador de vi-deo é iniciado após a chamada do aplicativo ser recebida.
17. Método, de acordo com a reivindicação 12,CARACTERIZADO por adicionalmente compreender:falsificar o primeiro controlador de video para oaplicativo até que o aplicativo redirecione-se para o segun-do controlador de video.
18. Método que dispensa reinicialização para atua-lizar um controlador de video especifico do hardware em umcomputador hospedeiro, o método sendo CARACTERIZADO por com-preender:interromper um controlador de video especifico dohardware atualmente em execução;iniciar um controlador de video provisório; eem seguida iniciar um controlador de video especi-fico do hardware atualizado.
19. Método, de acordo com a reivindicação 18,CARACTERIZADO pelo fato de que o controlador de video provi-sório é um controlador padrão fornecido junto com o sistemaoperacional em execução no computador hospedeiro.
20. Método, de acordo com a reivindicação 18,CARACTERIZADO pelo fato de que, após o controlador atualmen-te em execução ser interrompido, são alocados recursos sufi-cientes para permitir que o controlador provisório seja exe-cutado .
BRPI0617793-0A 2005-10-31 2006-10-03 atualizações de controlador de vìdeo que dispensam reinicialização BRPI0617793A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/263.765 2005-10-31
US11/263,765 US8056072B2 (en) 2005-10-31 2005-10-31 Rebootless display driver upgrades
PCT/US2006/039128 WO2007053260A1 (en) 2005-10-31 2006-10-03 Rebootless display driver upgrades

Publications (1)

Publication Number Publication Date
BRPI0617793A2 true BRPI0617793A2 (pt) 2011-08-09

Family

ID=37998133

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0617793-0A BRPI0617793A2 (pt) 2005-10-31 2006-10-03 atualizações de controlador de vìdeo que dispensam reinicialização

Country Status (8)

Country Link
US (2) US8056072B2 (pt)
EP (1) EP1946221A4 (pt)
JP (1) JP5038321B2 (pt)
KR (1) KR101343176B1 (pt)
CN (1) CN101297284B (pt)
BR (1) BRPI0617793A2 (pt)
RU (1) RU2397539C2 (pt)
WO (1) WO2007053260A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades
US8561050B2 (en) * 2005-11-10 2013-10-15 Hewlett-Packard Development Company, L.P. Method and system for updating an application
US8127310B1 (en) * 2007-03-26 2012-02-28 Celio Corporation Method and apparatus for dynamically switching display drivers in mobile device operating system
JP5007154B2 (ja) * 2007-05-25 2012-08-22 クラリオン株式会社 情報処理装置
US8234488B1 (en) * 2007-11-12 2012-07-31 Nvidia Corporation System and method for controlling mode switches in hardware
CN101520757A (zh) * 2009-04-07 2009-09-02 深圳华为通信技术有限公司 设备驱动方法、装置及通信系统
CN101655801B (zh) * 2009-09-11 2013-12-18 华为技术有限公司 驱动软件升级的方法及装置
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
CN102004655B (zh) * 2010-11-25 2013-06-19 飞天诚信科技股份有限公司 自动安装驱动程序的装置及方法
US8830228B2 (en) * 2010-12-20 2014-09-09 Microsoft Corporation Techniques for enabling remote management of servers configured with graphics processors
US9053201B2 (en) 2012-02-29 2015-06-09 Microsoft Technology Licensing, Llc Communication with a web compartment in a client application
US8972964B2 (en) * 2012-07-26 2015-03-03 Unisys Corporation Dynamic firmware updating system for use in translated computing environments
CN103761126B (zh) * 2014-01-07 2017-03-15 中国神华能源股份有限公司 应用程序的升级方法和装置
KR20150102376A (ko) * 2014-02-28 2015-09-07 한국전자통신연구원 운영 환경의 변화에 적응하는 시스템 업그레이드와 진화 기법 및 그 시스템
CN105760242B (zh) * 2015-06-19 2018-12-11 深圳怡化电脑股份有限公司 自助设备的驱动程序自适应方法及装置
US10831394B2 (en) 2018-08-27 2020-11-10 International Business Machines Corporation Live upgrade of storage device driver using shim application

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654738A (en) * 1993-05-17 1997-08-05 Compaq Computer Corporation File-based video display mode setup
GB2282245B (en) 1993-09-23 1998-04-15 Advanced Risc Mach Ltd Execution of data processing instructions
US5682529A (en) * 1994-03-14 1997-10-28 Apple Computer, Inc. System for dynamically accommodating changes in display configuration by notifying changes to currently running application programs to generate information by application programs to conform to changed configuration
JP3451499B2 (ja) 1994-08-29 2003-09-29 日本電信電話株式会社 入出力装置制御システム構成の変更処理方法
US5831639A (en) * 1995-07-05 1998-11-03 Symantec Corporation Scanning display driver
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
US6009480A (en) * 1997-09-12 1999-12-28 Telxon Corporation Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
US5889965A (en) * 1997-10-01 1999-03-30 Micron Electronics, Inc. Method for the hot swap of a network adapter on a system including a dynamically loaded adapter driver
JP3287295B2 (ja) 1998-01-16 2002-06-04 日本電気株式会社 オペレーティングシステム
US6035355A (en) * 1998-04-27 2000-03-07 International Business Machines Corporation PCI system and adapter requirements following reset
US6282646B1 (en) * 1998-05-08 2001-08-28 Apple Computer, Inc. System for real-time adaptation to changes in display configuration
TW385408B (en) * 1998-08-26 2000-03-21 Inventec Corp Configuration method for installing plug-and-play device
RU2237275C2 (ru) 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
US6832312B1 (en) * 1999-12-22 2004-12-14 Evga.Com Process for automatically installing video display software upon detecting new video display controller
US6658489B1 (en) 2000-03-29 2003-12-02 International Business Machines Corporation Method for replacing a device driver during system operation
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
KR20100105763A (ko) 2000-07-06 2010-09-29 다이이찌 산쿄 가부시키가이샤 히드로피리딘 유도체 산부가염
KR100520058B1 (ko) * 2000-12-13 2005-10-11 삼성전자주식회사 디바이스드라이버 업그레이드 시스템 및 디바이스드라이버업그레이드 방법
US7080247B2 (en) * 2000-12-22 2006-07-18 Evga Corporation System and method for automated display driver management
JP3984895B2 (ja) * 2001-10-03 2007-10-03 キヤノン株式会社 情報処理装置およびサーバ装置およびドライバ更新方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
US7506147B2 (en) * 2002-02-04 2009-03-17 Sonus Networks, Inc. Policy distribution point for setting up network-based services
US20040019896A1 (en) * 2002-07-23 2004-01-29 Wen-Chu Yu Method of automatic program installation for computer device
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7197751B2 (en) * 2003-03-12 2007-03-27 Oracle International Corp. Real-time collaboration client
US7457831B2 (en) 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8056072B2 (en) * 2005-10-31 2011-11-08 Microsoft Corporation Rebootless display driver upgrades

Also Published As

Publication number Publication date
US20110321027A1 (en) 2011-12-29
KR101343176B1 (ko) 2013-12-19
RU2008117123A (ru) 2009-11-10
US8056072B2 (en) 2011-11-08
EP1946221A4 (en) 2009-01-14
CN101297284A (zh) 2008-10-29
WO2007053260A1 (en) 2007-05-10
US20070101343A1 (en) 2007-05-03
US8302089B2 (en) 2012-10-30
EP1946221A1 (en) 2008-07-23
JP2009514122A (ja) 2009-04-02
CN101297284B (zh) 2012-07-18
JP5038321B2 (ja) 2012-10-03
KR20080067633A (ko) 2008-07-21
RU2397539C2 (ru) 2010-08-20

Similar Documents

Publication Publication Date Title
BRPI0617793A2 (pt) atualizações de controlador de vìdeo que dispensam reinicialização
US10452404B2 (en) Optimized UEFI reboot process
US8352721B1 (en) Initiating an operating system boot from firmware
US9483246B2 (en) Automated modular and secure boot firmware update
KR101512252B1 (ko) 운영 시스템(os)이 없는 서비스 환경에서 펌웨어를 프로비저닝하는 방법
US8527982B1 (en) Auto install virtual machine monitor
US7702896B1 (en) Interactive firmware recovery
US20060242398A1 (en) Booting from non-volatile memory
US9720674B1 (en) Automating application of software patches to a server having a virtualization layer
US7962736B1 (en) Interactive pre-OS firmware update with repeated disabling of interrupts
EP2630566B1 (en) Methods and apparatus for building system images and split booting
JP2009512020A (ja) オペレーティングシステムの停止状態からの高速起動
JP2010134941A (ja) 目標の媒体上にオペレーティングシステムイメージを作成する方法、システム及びリカバリ媒体
US9043789B2 (en) Managing safe removal of a passthrough device in a virtualization system
US9055123B2 (en) Enhanced reboot command
US9753739B2 (en) Operating system management of second operating system
US20110197185A1 (en) Method and Apparatus for Updating Firmware on a Storage Device
US11294691B2 (en) Dynamic memory layouts for firmware updates based on OEM memory subsystem
Ashley Foundations of Libvirt Development

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]