Вы находитесь на странице: 1из 7

Windows xp/2000 internals

Subsistema de entrada/saída

Tipos de devide drivers:


• Virtual device driver: o user mode permite o acesso ao hardware apartir
do DOS
• Kernel device driver: vídeo device driver; sistema de fixeiros do driver;
Plug & Play device driver;
• Windows Driver Model (WDM) — também conhecido como Win32
Driver Model — é um arcabouço para desenvolvimento de device drivers
que foi introduzido com o Windows 98 e o Windows 2000 para substituir
o VxD, que foi usado nas versões mais antigas de Windows, como
Windows 95 e Windows 3.1, bem como o modelo do Windows NT. É
um padrão para a criação de drivers de dispositivos compatíveis com os
sistemas operacionais Windows a partir da versão 98.
• Legacy Device Driver: usado no Windows NT 4 driver. Pode ser ou nao
corrido no 2000/xp, mas não no 98/ME

Kernel Device driver: único que manipula o hardware e interrupções,etc. Extensão .sys.
As rotinas(funções) correm sempre no kernel mode. Sempre usado no kernel mode
stack, limitado em 12kb(2000/xp) e 8kb(98/ME). Normalmente invocado pelo código
do user mode (ReadFile, WriteFile, DeviceIOcontrol). Pode ser em camadas.

Rotinas para implementar aspectos do device drivers:


Invocar o driver:

WDM - Windows Driver Model : O WDM é a opção da Microsoft para a


simplificação do desenvolvimento de driver, e fornece um modelo unificado de
driver tanto para sistemas operacionais domésticos quanto empresariais, prevendo
também a possibilidade de migração para sistemas futuros. Neste tópico,
examinaremos o quanto o WDM se aproxima deste objetivo e a sua relevância para
a manipulação de dados de áudio.

O WDM funciona nas plataformas Windows 98 e Windows 2000, e um driver criado


dentro das especificações WDM é compatível com todas as plataformas a partir do
Windows 98SE. A maioria dos drivers são até mesmo compatíveis em código binário
com outras plataformas. Isso implica que os fabricantes de hardware podem
desenvolver um único driver para o modo kernel.

O WDM tem uma influência considerável nas aplicações de áudio. Ele oferece um
componente de mixagem e resampleamento de áudio que roda no modo kernel,
chamado de "KMixer", que facilita o acesso de várias aplicações ao mesmo
hardware, e faz parecer que ilimitados fluxos de áudio possam ser mixados em
tempo-real.

Device node: representa um pilha de dispositivos:


PDO: (physical device object) criado pelo barramentos de drivers
Fido: Filter device object
FDO: Functional device driver

Plug and Play: é a capacidade que um SO possui de reconhecer e adaptar-se de forma


dinâmica a alterações na sua configuração inicial de hardware.
Origem: Windows 95.
Evolução:Adoção da especificação ACPI (Advanced Configuration and Power Interface).
Windows 2000: WDM (Win32 Driver Model). A tecnologia Plug and Play (PnP) , que significa
“ligar e usar”, foi criada com o objetivo de fazer com que o computador reconheça e configure
automaticamente qualquer dispositivo que seja instalado, facilitando a expansão segura dos
computadores e eliminando a configuração manual.

Device Enumeration: Identifica todos os dispositivos ligados a um sistema e inicializa as


rotinas exigidas que os permitem a funcionar.

Chaves de registos importantes:


• Chave de “Hardware”: HKLM\System\CCS\Enum (contem informação acerca
de um único dispositivo)
• “Class” keys: HKLM\System\CCS\Control\Class (informação acerca de todos
os dispositivos do mxm tipo)
• “Software” (Service) key : HKLM\System\CCS\Services\drivername
(informaçao acerca de um driver em especifico)

Interupt Request Packet (IRP): estrutura definida na libraria <wdm.h>, contem todos os
detalhes necessários para a resolver o pedido(códigos, buffers, sizes…). As requisições de
E/S são convertidas em um formato padrão denominado de IRP (I/O Request Packet).
IRP é direcionado ao driver de dispositivo. Driver de dispositivo informa à gerência quando
a operação é finalizada.

Métodos de buffer:
• Buffered I/O: Transferencia é para e de o intermédio do buffer no endereço de
espaço do sistema;
• Direct I/O: Transferência é para e de a parte física do utilizador;
• Neither I/O: Usado pelo DeviceIoControl para funções que não requerem buffer;

DriverObject: estrutura de dados usada pelo gerenciador de I/O para representar cada device-
driver. A estrutura DriverObject possui varios campos, alguns acessíveis e outros não acessíveis.

Device object: mantém uma lista das estruturas de dados do tipo device object associadas a um
dispositivo em particular, que são gerenciados pelo driver é um dos campos acessiveis pelo
driverObject.

Interrupt objects: permite k se tenha as interrupções despachadas para os drivers

Adapter objects: usados para simplificar o uso de DMA

O que é uma APC (Asynchronous Procedure Call)?


Uma chamada de procedimento assíncrona é uma função executada de maneira
assíncrona no contexto de um segmento específico. A APC força uma especifica thread
a executar uma especifica rotina nexa thread.

Tipos de APC:
• Special kernel APCs
->corre em kernel mode, e IRQL_APC_Level (1)
->pode ser sempre entregue
->usado pr relatorio final sobre conclusão
• User mode APCs
->corre em user mode, e IRQL_APC_Level
->Usado qd a conclusão do I/O chama as rotinas(see ReadFileEx,
WriteFileEx)
->só entregue qd a linha entra em estado de "alertable state"(ver os
documentos para (SleepEx, WaitForSingleObjectEx, WaitForMultipleObjectsEx)
->pode ser colocado na QueueUserApc (Win32)

Gestao de energia:
• Porque de gerir a energia? Aumenta o tempo de vida da batteria nos sistemas
portáteis
• Energy Star: Este é um programa criado pela Environmental Protection
Agency (EPA) em 1993, que incentiva os fabricantes de PCs e monitores e
produzirem equipamentos com sistemas de gerenciamento de energia. O
objetivo é diminuir a poluição causada pela geração de energia elétrica. Para
poderem exibir o selo os monitores devem consumir menos de 30 Watts em
modo stand-by e menos de 8 Watts ao serem desligados via software. A maioria
dos monitores atuais consegue ir bem além atingindo as metas de 15 watts em
stand-by e menos de 5 Watts desligados, sem apresentar um desgaste excessivo
ao serem utilizados os modos de economia de energia, novamente ao contrário
dos antigos, que podiam apresentar defeitos prematuramente se fossem
desligados com muita frequência.
Os modos de economia de energia permitem economizar uma grande
percentagem da eletricidade consumida pelo PC, já que sozinho um monitor de
15" consome cerca de 100 Watts, mais da metade da energia total consumida
• Porque de implementar Energy Star? È um requisito de venda nos US, e
muitos países da Europa e Asia.

Gestao de energia ate o Windows 2000: a maior parte dessa gestão era feita pelo
hardware. APM é a sigla para Advanced Power Management, uma norma de
gerenciamento de energia usada inicialmente em computadores portáteis, mas que
mais tarde foi adotada também nos computadores de mesa. A sua principal função é
controlar diversos componentes do sistema de modo a ativar modos de poupança de
energia quando não estão a ser utilizados. Recentemente esta tecnologia tem vindo a
ser substituída pela norma ACPI, que não se limita à gestão do consumo de energia.
Alguns computadores mais recentes já não são compatíveis com APM. O APM pode
interroper o cpu a kk momento. Problemas: o esquema é especifico para o x64,
personalizado pelo DOS…

WDM Power States (1):

WDM Power States:


• em trabalho(S0)
->Sistema é geralmente operacional e correndo em velocidade máxima

• adormecido/suspenso(s1-s3)
->No modo sleep o sistema desliga a maior parte dos componentes de forma
consumir o menos possivel de energia.cpu esta desligado.Volta ao estado normal em pouco
tempo. mas se ficar sem energia perde o estado actual.
• Hibernate (S4)
-> a memoria fisi
• Hibernate (S4)
-> a memoria fisica fica escrita no disco,cpu desligado
• Off (S5)
->sem energia

• Waking

->transição de estado de sleep para trabalho

WDM Power States (2):

• D0: Maior nível de energia de consumo e performance


• D1: Menor consumo de energia que D0 mas maior que D2
• D2: Menor consumo de enrgia que D1
• D3: dispositivo sem energia

Power Policy: Policy manager


O policy manager monitora atividade no sistema e integra estado de usuário, estado de
aplicação e estado do device driver em política de power. Debaixo de circunstâncias
especificadas ou em pedido, o Policy manager gera IRPs para mudar o
estado(ligado/desligado) dos dispositivos.

Power Control Panel: permite programar o botão de energia e o botão de sleep


(Shutdown, standby, hibernate, off, nada); monitoriza o nível de energia da
bateria, em caso de baixo nível de energia executa um alarm de mode a avisar o
user, coloca a maquina em standy (suspensão) or hiberna.

Power IRPs Activation:


• Pedidos do usuario(do menu,adormecer,suspender,apliacações de chamada a
power API)
->desligar
->hibernar
->suspender
• condições de bateria fraca
->o comportamento exacto é activo usando o painel de controlo de energia

Como os sistemas se desligam? O gestor de energia envia um


IRP_MN_QUERY_POWER para todos os dispositivos. Se todos os dipositivos
estiverem de acordo o gestor de energia envia um IRP_MN_SET_POWER com o
novo estado da enrgia. Se pelo menos um dispositivo não concordar o gestor de
energia envia um IRP_MN_SET_POWER com o antigo estado de energia
“Acordar” do sistema:
• Um dispositivo pode ser capaz de acordar o sistema de um estado de sleep
(exemplo: cartão de Lan, modem…)
• O barramento de driver descobre que o dispositivo pode acordar o
sistema(IRP_MN_QUERY_CAPABILITIES PnP IRP)
• Quando o evento de acordar xega o dispositivo inicia um IRP MN WAIT
WAKE

Instalação de drivers:
• Usa o ficheiro .iNF
->Requer os drivers WDM
->o formato é novo,mas baseado no formato INF no windows 95.
• Quando um tipo novo de hardware é descoberto pelo PnP manager, os sistemas de
instalação de dispositivos procuram o %SystemRoot%\INF para encontrr um
ficheiro INF satisfatório
->se não achar,uma caixa de dialogo ir aparecer avisando o usuario.
• o ficheiro Inf n é corrido do inicio ao fim.

Verificar Driver:
->ferramenta k permite monitorizar os device driver nas actividades e operações.
->diferente em Windows 200 e xp
->pode ser operado na linha de comandos
->pode mudar defenições mxm sem reiniciar
->n requer nenhum codigo especial ou pedido ao fornecedor do driver
->Pode monitorizar qualquer driver.

Opções do verificador de driver(1):


• Automatic Checks
->uso inadequado da IRQL,
• Special memory pool
• Forcing IRQL checking
• Baixa simulação de recurso
->fracasso nas alocações de memoria

Opções de verficação do driver(2):


• Memory Pool Tracking???
• Verificação Entrada/saída
• Verificação do DMA (Apenas no XP): monitoriza o DMA do buffer e mapas
de registos usado
• Detecção de paralisação completa (apenas no xp)
Verificação de SCSI: SCSI (pronuncia-se "scuzi"), sigla de Small
Computer System Interface, é uma tecnologia que permite ao usuário
conectar uma larga gama de periféricos, tais como discos rígidos, unidades
CD-ROM, impressoras e scanners. Características físicas e elétricas de uma
interface de entrada e saída (E/S) projetadas para se conectarem e se
comunicarem com dispositivos periféricos são definidas pelo SCSI.
Monotoriza rotinas de SCSI, atrasos…

Вам также может понравиться