Partilhar via


[Arquivo de boletins informativos ^] <[ Volume 3, Número 1] [Volume 4, Número 1 >]

O Boletim Informativo Interno dos Sistemas Volume 3, Número 2

http://www.sysinternals.com
Direitos de autor (C) 2001 Mark Russinovich


20 de agosto de 2001 - Nesta edição:

  1. EDITORIAL

  2. O QUE HÁ DE NOVO NA SYSINTERNALS

    • Explorador de Processos v5.1
    • Alça v2.0
    • PsInfo v1.1
    • PsExec v1,24
    • PsLogList v2.07
    • Layout de origem do Windows XP
    • DebugView v4.13
    • PageDefrag v2.1, Contig v1.41
    • Sysinternals na empresa Microsoft
  3. INFORMAÇÃO INTERNA

    • Dentro do Windows 2000, o DVD interativo
    • Marque a data: Russinovich e Salomão ensinam juntos em Austin
    • Gerenciamento de disco de linha de comando
    • Slides WINHEC 2001 online
    • Novas interfaces de driver de filtro do sistema de arquivos no XP
    • Travar o Windows com um pressionamento de tecla
    • Pré-busca do Windows XP
    • Conexões do Windows .NET
  4. O QUE VEM POR AÍ

    • Minhas Experiências Itanium

PATROCINADOR: WINTERNALS SOFTWARE

A Newsletter da Sysinternals é patrocinada pela Winternals Software, na Web em http://www.winternals.com. A Winternals Software é a principal desenvolvedora e fornecedora de ferramentas de sistemas avançados para Windows NT/2K/XP. Os produtos Winternals Software incluem FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (um driver NTFS de leitura/gravação para DOS) e Remote Recover.

A Winternals tem o orgulho de anunciar o Defrag Commander versão 1.31, o desfragmentador empresarial mais rápido e completo disponível. Agora você pode gerenciar agendas de desfragmentação em toda a sua empresa Windows a partir de um simples snapin MMC - sem precisar instalar nenhum software cliente em seus sistemas NT ou Windows 2000. Uma licença de 10 sistemas está disponível para compra on-line por apenas US $ 169, e descontos de quantidade agressivos estão disponíveis. Visite http://www.winternals.com/39 para mais informações ou para baixar e usar gratuitamente por 30 dias.

Olá a todos,

Bem-vindo à newsletter da Sysinternals. A newsletter conta atualmente com 33.000 assinantes.

Utilizo computadores em diversas funções: como desenvolvedor de software; como utilizador; e como administrador de sistemas (para a minha própria rede de desenvolvimento e teste de sistemas). Porque eu quero alcançar o público mais amplo para ferramentas freeware Sysinternals e produtos comerciais Winternals, a maioria dos utilitários visam no mínimo Windows NT 4 através do Windows XP, e muitos também são executados no Windows 95 através do Windows Me. A maioria das ferramentas que escrevo são de nível de sistema, o que significa que geralmente contêm código de caso especial para uma ou mais das várias variantes do Windows. Infelizmente, existem diferenças significativas na interface do usuário e no kernel entre a linha do Windows NT e a linha do Windows 9x, e até mesmo diferenças entre versões da mesma linha.

Eu costumava realizar testes tendo vários sistemas de depuração, todos configurados para multiinicializar os sabores do Windows que enumerei, e inicializando em uma versão, testando e, em seguida, reiniciando na próxima. Além de ser lento, o teste às vezes era distorcido por interferir em excrementos de compilações de teste intermediárias de utilitários que eu não tinha limpo corretamente. Embora eu ainda tenha uma coleção de sistemas de inicialização múltipla para problemas de depuração, um produto inovador chamado VMWare (www.vmware.com) tornou meus ciclos de teste mais rápidos e fáceis.

VMWare é um ambiente de máquina virtual que você usa para criar computadores virtuais (convidados) que são executados sobre instalações do Windows NT, Windows 2000 ou Linux (hosts). Um convidado pode executar a maioria das variantes do Windows, DOS e Linux. É desconcertante ver uma versão de um sistema operacional rodar em cima de outra, especialmente quando você faz uma máquina virtual em tela cheia – não há praticamente nenhuma maneira de detetar que você não está sentado na tela de um computador Linux em vez de um monitor virtual de um computador Linux rodando em cima do Windows 2000, por exemplo. Uma máquina virtual é uma caixa imposta por software que encapsula o sistema operacional e os aplicativos em execução na máquina virtual para que, quando eles tentarem interagir com o hardware que acreditam estar presente, o software da máquina virtual intercete os acessos. O software da máquina virtual cria dispositivos virtuais que servem como substitutos cuidadosamente controlados para hardware real ou hardware virtual. Por exemplo, quando um aplicativo que está sendo executado em uma máquina virtual que está sendo exibida em uma janela grava na memória de exibição da máquina virtual, o software da máquina virtual atualiza o conteúdo da janela que representa a exibição da máquina virtual em vez de permitir que os acessos toquem na memória de vídeo real. Se a máquina virtual estivesse sendo executada no modo de tela cheia, o software da máquina virtual permitiria que esses acessos manipulassem a memória de vídeo diretamente.

A capacidade da máquina virtual por si só torna o VMWare útil, uma vez que você pode ter qualquer número de "sistemas de teste" ao redor do seu disco rígido. O que torna o VMWare ainda mais poderoso é o fato de que você pode "suspender" um computador virtual, salvando seu estado no disco e, mais tarde, retomá-lo, em segundos, restaurando o estado que ele tinha quando você suspendeu. Mas não é tudo. Eu faço uso extensivo de um recurso chamado "discos não persistentes", que faz com que o VMWare inicie um computador virtual com seus discos virtuais contendo o conteúdo que você definiu (por exemplo, com apenas uma instalação básica do sistema operacional) e, em seguida, controle as alterações para que você possa desfazê-las e reverter para o estado inicial. Se eu instalar versões de teste de um utilitário e, em seguida, precisar ter certeza de que estou de volta a um estado limpo que não reflete nenhuma das alterações do utilitário, eu simplesmente desfaço as alterações. Também considero o VMWare útil nas minhas funções de utilizador e administrador de sistemas. Sempre que faço o download de um aplicativo que não tenho certeza se quero manter, em vez de possivelmente comprometer meu sistema de desenvolvimento ou preenchê-lo com detritos deixados para trás quando desinstalo um aplicativo, eu simplesmente tento em uma máquina virtual com um disco não persistente primeiro.

Existem algumas desvantagens relativamente pequenas para a versão atual que me impediram de usar meus computadores de depuração reais tanto quanto eu. A primeira é que, como as máquinas virtuais não suportam DirectX, você não pode executar o depurador SoftICE do Numega, exceto com a máquina virtual em uma resolução de tela de 640x480. O segundo é que a virtualização de portas seriais do VMWare é limitada de uma forma que impede a depuração do kernel usando Windbg ou Kd entre o host e um convidado ou entre convidados. No entanto, este último problema deve ser resolvido na próxima versão principal do VMWare.

O que é particularmente interessante sobre o VMWare é que, até o VMWare demonstrar o contrário, os cientistas da computação mantinham predominantemente a crença de que era impossível virtualizar a arquitetura x86 em software bem o suficiente para executar um sistema operacional não modificado sem degradação de desempenho proibitiva. Os desafios são significativos, particularmente na área de virtualização de dispositivos de hardware, e o sucesso da VMWare é visto como um avanço - tanto que a VMWare publicou recentemente um artigo sobre como implementou a virtualização de dispositivos na Conferência Técnica anual da USENIX. Pode ler o artigo em http://vmware1.m0.net/m/s.asp?HB4162878203X1075673X73339X.

Falando da USENIX Technical Conference, também fui coautor de um artigo publicado lá, High-Performance Memory-Based Web Servers: Kernel and User-Space Performance (http://www.sysinternals.com/files/webserver.pdf). O artigo descreve algumas das pesquisas inovadoras em que participei enquanto trabalhava na IBM Research. As contribuições do trabalho são na área de aceleração de servidor Web em modo kernel, e além de contribuir para a arquitetura, fui responsável por grande parte da implementação no Windows NT e Windows 2000. O projeto foi tão bem-sucedido que consistentemente detivemos recordes mundiais SPECWeb de desempenho de serviço na web, foi lançado como um produto IBM ainda em evolução chamado IBM Netfinity Web Server Accelerator, e tanto a Microsoft quanto a comunidade Linux incorporaram várias das ideias-chave em seus próprios produtos (como IIS para Windows 2000 e Tux no Linux).

Por favor, passe a newsletter para amigos que você acha que podem estar interessados em seu conteúdo.

Obrigado!

-Marcar

O QUE HÁ DE NOVO NA SYSINTERNALS

EXPLORADOR DE PROCESSOS V5.1

Process Explorer é o novo nome para HandleEx, um utilitário multiuso que mostra informações detalhadas sobre processos, as DLLs que eles carregaram e os identificadores para recursos do sistema operacional que eles abriram. Junto com seu novo nome, as versões mais recentes do Process Explorer introduzem uma série de novos recursos, incluindo atualização automática eficiente, uma coluna de uso da CPU, a capacidade de alterar prioridades de processo e relatórios de IDs de sessão de processo se o sistema for um servidor de terminal. Além disso, mostra muito mais informações sobre processos. Por exemplo, você pode exibir a lista de serviços em execução dentro de um processo (se aplicável), examinar as variáveis de ambiente de um processo e exibir linhas de comando do processo. Usando uma nova opção de classificação chamada "árvore de processos", você pode ver graficamente as relações pai-filho dos processos, algo que pode ajudá-lo a identificar o propósito de um processo. O Process Explorer é executado em todas as versões do Windows 9x, bem como no Windows NT 4 através do Windows XP.

Algo que pode não ser imediatamente óbvio da interface do Process Explorer é sua capacidade de mostrar quais processos têm um determinado arquivo ou diretório aberto. Alterne a exibição para o modo de manipulação e digite o nome do arquivo ou diretório em questão na caixa de diálogo de pesquisa. O recurso de pesquisa é usado com mais frequência para rastrear o processo que está impedindo que você exclua ou renomeie um arquivo ou diretório, mas você pode usá-lo para listar processos que têm DLLs específicas carregadas também.

Download Process Explorer v5.1 em http://www.sysinternals.com/ntw2k/freeware/procexp.shtml.

PUNHO V2.0

Handle é a versão de linha de comando da funcionalidade de visualização de identificador do Process Explorer que permite que você veja os identificadores para recursos do sistema operacional, como arquivos, que os processos abriram. Em alguns casos, usar Handle é uma maneira mais rápida de identificar um processo que tem um arquivo ou diretório aberto do que usar o recurso de pesquisa do Process Explorer, porque você simplesmente insere uma parte do nome do arquivo ou diretório na linha de comando Handle. Além de uma pesquisa mais eficiente de nomes de identificadores, o Handle 2.0 agora funciona no Windows 95/98/Me.

Download Handle v2.0 em http://www.sysinternals.com/ntw2k/freeware/handle.shtml.

PSINFO V1.1

A mais recente adição ao conjunto de ferramentas administrativas PsTools é o PsInfo. PsInfo é uma ferramenta de linha de comando que relata as características de hardware e sistema operacional de um computador. Por exemplo, ele informa qual sistema operacional está sendo executado, incluindo o número do service pack, a data de instalação e expiração (se aplicável) e a configuração (por exemplo, controlador de domínio, servidor membro). Ele também lista o tipo, velocidade e número de CPUs no computador, e a quantidade de memória física instalada. Essas informações tornam o PsInfo útil para a identificação do sistema ou inventário. Como todas as ferramentas do pacote PsTools, o PsInfo é executado no computador local ou remoto com Windows NT, 2000 ou XP.

Download PsInfo v1.1 em http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml.

PSEXEC V1.24

PsExec permite que você inicie processos em sistemas remotos sem ter que instalar manualmente qualquer software no sistema remoto, desde que o sistema esteja em seu ambiente de rede. A força do PsExec reside em seu suporte para E/S de programa de console redirecionada, onde ele lida com a entrada de teclado e saída de texto de um programa de console remoto como se estivesse sendo executado em seu sistema local.

A versão mais recente do PsExec suporta vários processos em execução no mesmo sistema remoto, permitindo que você abra remotamente vários prompts de comando em outro sistema, por exemplo. Ele também tem uma nova opção "forçar cópia" que permite especificar que você deseja que o PsExec copie um arquivo para um computador remoto para execução, substituindo qualquer versão existente.

Download PsExec v1.24 em http://www.sysinternals.com/ntw2k/freeware/psexec.shtml.

PSLOGLIST V2.07

PsLogList, outro utilitário PsTools, despeja logs de eventos do sistema local ou remoto. Ao contrário de eloglist, a ferramenta Windows 2000 Resource Kit com a mesma finalidade, PsLogList exibe a cadeia de caracteres de evento completa de um registro e, ao despejar logs remotos, usa os arquivos de recurso de cadeia de caracteres do log de eventos do sistema remoto em vez do sistema local.

A versão 2.07 do PsLogList inclui uma opção de linha de comando para que você possa direcioná-la para despejar informações de registro de log de eventos estendido (as informações adicionais que podem ser associadas a um registro) e uma nova opção para que você possa exibir os registros apenas dos dias mais recentes especificados.

Download PsLogList v2.07 em http://www.sysinternals.com/ntw2k/freeware/psloglist.shtml.

LAYOUT DE ORIGEM DO WINDOWS XP

Você já se perguntou como a Microsoft organiza o código-fonte que compõe o kernel do Windows NT/2000/XP? Eu também, e percebi que a informação está disponível publicamente. Sempre que a Microsoft lança uma nova compilação do Windows 2000/XP lança várias versões:

  • uma versão "gratuita" uniprocessador
  • uma versão "gratuita" do uiniprocessor que suporta mais de 4 GB de memória física
  • uma versão "gratuita" multiprocessador
  • uma versão "gratuita" multiprocessador que suporta mais de 4 GB de memória física
  • uma versão multiprocessador "verificada"
  • uma versão multiprocessador "verificada" que suporta mais de 4 GB de memória física

Para um total de 6 versões. O que distingue o "livre" do "verificado" não é o fato de que a versão "gratuita" é gratuita (não é), mas que a versão "verificada", que está incluída no conjunto de CDs do MSDN, inclui código e dados que ajudam na depuração do sistema operacional e do driver de dispositivo. A versão "gratuita" é simplesmente compilada livre do código extra que está incluído nas instruções de compilação condicional.

Exemplos do código extra verificado incluem instruções de impressão de depuração que relatam o que o sistema operacional está fazendo, verificação de consistência mais rigorosa nos parâmetros passados para funções de modo kernel de drivers de dispositivo e instruções de "asserção". Uma declaração assert valida a suposição de um desenvolvedor sobre condições que se aplicam a uma área de código. Por exemplo, se um ponteiro deve apontar para uma estrutura de dados com uma assinatura de identificação, um desenvolvedor pode inserir uma asserção para esse efeito. O que acontece quando o pressuposto da asserção é violado? Isso depende da asserção, mas no caso daqueles incluídos nas compilações verificadas, uma mensagem de saída de depuração é impressa e, em seguida, um ponto de interrupção do depurador é acionado para que o depurador do kernel seja ativado (ou, se nenhum depurador estiver ativo, ocorre uma falha que, esperançosamente, gera um arquivo de despejo que pode ser examinado posteriormente).

Para facilitar a identificação dos problemas detetados pelas asserções, as asserções usadas na construção verificada imprimem o arquivo, a função e o número da linha do local da asserção. Sou capaz de mostrar o layout da árvore de código-fonte extraindo essas strings com meu utilitário de extração de strings "strings" e organizando-as em uma treeview java.

Exiba o layout de origem do Windows XP e saiba mais sobre asserções em http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml (observe que o IE exibirá um aviso sobre o carregamento lento da página. Dispense-o e você verá a árvore).

DEBUGVIEW V4.13

DebugView é um utilitário de desenvolvedor que permite capturar a saída de depuração de aplicativos ou drivers no sistema local ou remoto - mesmo de vários sistemas simultaneamente. Esta última versão adiciona compatibilidade com o Windows XP RC 1. DebugView funciona no Windows 9x, Windows Me, Windows NT, Windows 2000 e Windows XP.

Download DebugView v4.13 em http://www.sysinternals.com/ntw2k/freeware/debugview.shtml.

PAGEDEFRAG V2.1, CONTIG V1.41

No topo dos downloads mais populares do Sysinternals estão PageDefrag e Contig. PageDefrag desfragmenta os principais arquivos de dados do sistema no momento da inicialização e Contig é um utilitário de desfragmentação de arquivos de linha de comando. As versões mais recentes dessas ferramentas têm um mecanismo de desfragmentação aprimorado para o Windows 2000 e cada uma tem alguns de seus próprios aprimoramentos.

Além de desfragmentar o Registro e os arquivos de paginação, a versão mais recente do PageDefrag também desfragmenta os arquivos de log de eventos. E semelhante ao Chkdsk no Windows 2000, PageDefrag agora tem uma contagem regressiva de 3 segundos durante o processo de inicialização, durante o qual você pode pressionar qualquer tecla para que ele pule a desfragmentação.

O que torna o Contig único é o fato de que você pode usá-lo para desfragmentar arquivos individuais, diretórios inteiros ou um disco inteiro. O Contig tem como objetivo otimizar arquivos específicos que são críticos para o desempenho do aplicativo porque, ao contrário dos desfragmentadores comerciais, ele não consolida o espaço livre para ajudar a evitar fragmentação futura em um disco. Além do motor de desfragmentação aprimorado, o novo Contig tem melhor formatação de saída tanto nos modos não detalhado quanto detalhado.

Download PageDefrag v2.1 em http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml.
Download Contig v1.4 em http://www.sysinternals.com/ntw2k/freeware/contig.shtml.

SYSINTERNALS NA WWW.MICROSOFT.COM

Mais uma vez, aqui está a última parcela de referências Sysinternals em artigos da Base de Dados de Conhecimento Microsoft (KB) lançados desde o último boletim informativo. Isso eleva para 27 o número total de referências KB a Sysinternals.

  • 0x8000FFFF Mensagem "Falha catastrófica" com driver ODBC do SQL Server
    http://support.microsoft.com/support/kb/articles/Q243/3/49.ASP

  • ACC: Mensagem de erro: Componente ActiveX não é possível criar objeto
    http://support.microsoft.com/support/kb/articles/Q296/2/05.ASP

  • COMO: Determinar a versão do MSXML usado pelo Internet Explorer
    http://support.microsoft.com/support/kb/articles/Q296/6/47.ASP

  • COMO: Solucionar problemas "ADODB. Conexão" Erro 800a0bb9 do Recordset DTC
    http://support.microsoft.com/support/kb/articles/Q197/3/23.ASP

  • INFO: Guia de solução de problemas para 80004005 e outras mensagens de erro
    http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP

  • XADM: Mensagens de identificação de evento 3036 e 3026 ocorrem ao preencher o armazenamento de caixa de correio
    http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP

INFORMAÇÃO INTERNA

DENTRO DO WINDOWS 2000, O DVD INTERATIVO

Dave Solomon e eu escrevemos "Inside Windows 2000, 3rd Edition", o guia oficial para os internos e arquitetura do Windows 2000, e temos o prazer de anunciar o lançamento iminente do tutorial em DVD "Inside Windows 2000". O tutorial na verdade consiste em 5 DVDs com mais de 9 horas de conteúdo consistindo de Dave e eu ensinando o funcionamento interno do Windows 2000 em um ambiente informal.

Os tópicos abordados incluem gerenciamento de memória, processos e threads, armazenamento, sistemas de arquivos, rede e muito mais, e cada um é dividido em módulos de 10 a 20 minutos para visualização conveniente. A apresentação inclui dezenas de diagramas, demonstrações, capturas de tela e listas de resumo, e cada módulo termina com perguntas de revisão para testar e solidificar seu entendimento.

O preço final e a data de lançamento ainda não foram finalizados, mas se você deseja ser notificado do lançamento envie e-mail para mailto:video@... com a palavra "interesse" no assunto. Ou fique atento http://www.sysinternals.com/video/ aos detalhes.

MARQUE A DATA: RUSSINOVICH E SALOMÃO ENSINAM JUNTOS EM AUSTIN

Se você está interessado no conjunto de DVD, você definitivamente estará interessado em uma oportunidade de ver Dave e eu ensinando NT internos ao vivo. Venha a Austin, TX de 11 a 13 de dezembro para nos ouvir apresentar nossa aula de arquitetura interna de 3 dias do Windows XP/2000/NT. A classe é baseada em "Inside Windows 2000, 3rd Edition" e abrange subsistemas de ambiente, despacho de chamadas do sistema, threads do sistema, inicialização e desligamento, internos do registro, processos e agendamento de threads, gerenciamento de memória, segurança, sistema de E/S, armazenamento, NTFS e gerenciador de cache. Ao compreender o funcionamento interno do Windows XP & 2000, você pode tirar proveito da plataforma de forma mais eficaz e eficaz, depurar e solucionar problemas.

Quando os detalhes estiverem disponíveis, avisaremos você na newsletter e no site, então fique atento!

GERENCIAMENTO DE DISCO DE LINHA DE COMANDO

Pressionando os administradores de sistemas, a Microsoft finalmente lançou uma ferramenta de linha de comando programável para gerenciar discos no Windows 2000. O DiskPart permite criar volumes ou partições, criar e quebrar espelhos, estender volumes e examinar detalhes dos discos, volumes e partições. O que é bom é que DiskPart é um download gratuito de http://www.microsoft.com/downloads/release.asp?ReleaseID=31167.

WINHEC 2001 SLIDES ONLINE

Se você perdeu a Conferência Anual de Engenharia de Hardware do Windows (WINHEC) da Microsoft, ainda poderá visualizar os slides de muitas das apresentações. Visite http://www.microsoft.com/winhec/sessions/driver.htm para obter uma lista de sessões, descrições e links de acompanhamento para decks do Power Point. As apresentações de interesse geral são aquelas sobre técnicas de depuração de drivers, drivers de filtro e drivers intermediários e de miniporta NDIS.

NOVAS INTERFACES DE DRIVER DE FILTRO DO SISTEMA DE ARQUIVOS NO XP

Se você tiver um espelhamento de arquivos em tempo real, verificação de vírus ao acessar ou um produto de gerenciamento de armazenamento hierárquico baseado em um driver de filtro do sistema de arquivos, convém certificar-se de que você está a par das alterações que a Microsoft introduziu no Windows XP que o afetam.

A maior mudança está relacionada às rotinas de E/S rápidas, as funções especiais que um driver de sistema de arquivos registra para que o Gerenciador de Memória, o Gerenciador de Cache e o sistema de E/S possam executar E/S do sistema de arquivos e interagir com drivers de sistema de arquivos sem ter que gerar IRPs. Pode ser uma surpresa para alguns de vocês descobrir que existem 6 rotinas de E/S rápidas para as quais os drivers de filtro do sistema de arquivos são sempre ignorados. Eles são:

FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite

O Gerenciador de memória chama FastIoAcquireFileExclusive e FastIoReleaseFile antes e depois de criar uma seção apoiada por um arquivo, e outros subsistemas de modo kernel podem chamar essas rotinas para impedir temporariamente que seções sejam criadas. O Gerenciador de Cache chama FastIoAcquireFileForCcFlush e FastIoReleaseFileForCcFlush antes e depois de liberar todos ou parte dos dados em cache modificados de um arquivo de volta para o disco, e o Gerenciador de Memória chama FastIoAcquireFileForModWrite e FastIoReleaseFileForModWrite antes e depois de gravar páginas de arquivos mapeados sujos de volta para um arquivo.

Em vez de invocar funções de E/S rápidas diretamente, os subsistemas de modo kernel usam rotinas substitutas de tempo de execução do sistema de arquivos (FsRtl). As rotinas de tempo de execução para a maioria das funções de E/S rápidas invocam drivers de filtro obtendo uma referência ao objeto do dispositivo de filtro por meio de uma chamada para IoGetRelatedDeviceObject o objeto de arquivo de destino e, em seguida, chamando a rotina de E/S rápida correspondente do filtro, mas as rotinas de tempo de execução relacionadas às chamadas de E/S rápidas listadas acabam de ser IoGetBaseFileSystemDeviceObjectchamadas , que retorna o objeto de dispositivo do driver do sistema de arquivos subjacente. A razão pela qual o tempo de execução ignora os filtros para essas funções é, na minha opinião, um pouco manca: o tempo de execução simplesmente não confia nos drivers de filtro. Se um filtro não passar essas chamadas para o driver do sistema de arquivos subjacente, isso causará corrupção de dados do sistema de arquivos e, quase certamente, uma falha. Mas há muitas coisas que um driver de filtro pode fazer para causar acidentes.

No Windows XP, o FsRtl introduz uma nova função, FsRtlRegisterFileSystemFilterCallbacks, que os drivers de filtro usam para registrar retornos de chamada para essas várias operações. Isso torna possível que os drivers de filtro do sistema de arquivos examinem essas operações e até mesmo falhem nelas, e o tempo de execução pode garantir que o driver do sistema de arquivos subjacente seja sempre invocado quando apropriado. Onde encontrar a documentação para a função? O Windows XP Installable File System Kit, que está disponível por US $ 995 da Microsoft: http://www.microsoft.com/ddk/ifskit/XPdefault.asp.

TRAVAR JANELAS COM UM PRESSIONAMENTO DE TECLA

Alguns boletins informativos atrás eu disse como você poderia adicionar uma configuração para o Registro do Windows 2000 que permite que você inicie uma falha Bluescreen de um sistema em execução com uma sequência de chaves especial, permitindo que você analise sistemas que, de outra forma, não estão respondendo à entrada. Que tal uma maneira de travar o Windows NT e Windows 2000 sem ter que definir nada no Registro?

Abra uma janela de prompt de comando, altere o diretório atual para a raiz da unidade de inicialização (a unidade com \winnt ela) e digite dir /s. Enquanto estiver em execução, digite F7+Enter algumas vezes e, em seguida, anule a listagem digitando Ctrl-C. Você encontrará imediatamente uma tela azul ou uma reinicialização espontânea. Legal, hein? Infelizmente, ao contrário do truque que relatei anteriormente, este não é um comportamento projetado, mas sim um bug para o qual você pode encontrar um relatório em http://www.WindowsITsecurity.com/articles/index.cfm?articleID=22037.

Para aqueles de vocês que perderam o boletim informativo que incluía a configuração de pressionamento de teclas-falha, adicione o seguinte valor do Registro ao seu Registro do Windows 2000 ou XP de acordo com as instruções no arquivo de ajuda das Ferramentas de Depuração da Microsoft:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScrll DWORD 1

Reinicialize e você pode travar o sistema digitando scroll-lock duas vezes enquanto mantém pressionada a tecla de controle esquerda.

PRÉ-BUSCA DO WINDOWS XP

A Microsoft concentrou o Windows XP em melhorar a experiência do usuário final, e os usuários consideram uma grande parte da experiência a velocidade com que um computador liga e é utilizável. Portanto, os desenvolvedores da Microsoft gastaram um grande esforço para melhorar o desempenho do processo de inicialização e inicialização do aplicativo. Eles abordaram isso de várias maneiras: a primeira é que os drivers de dispositivo serial e de rede são inicializados em paralelo, ao contrário do Windows 2000, onde são inicializados em série. Em segundo lugar, o Winlogon não espera mais que o serviço de estação de trabalho (que aguarda nos serviços de rede) fique disponível antes de apresentar a caixa de diálogo de logon e permitir que um usuário faça logon. Finalmente, eles incorporaram uma técnica chamada "pré-busca" no processo de inicialização e inicialização do aplicativo. Vou abordar brevemente como funciona a pré-busca e apontar para um whitepaper que a Microsoft publicou sobre otimizações de inicialização.

O Windows (todas as versões, exceto o Win3.1 em modo real) é um sistema operacional paginado por demanda, onde os dados e o código do arquivo são "defeituosos" na memória do disco quando um aplicativo tenta acessá-lo. Os dados e o código estão com defeito em blocos granulares de "página", onde o tamanho de uma página é ditado pelo hardware de gerenciamento de memória da CPU. Uma página tem 4 KB no x86. A pré-busca é o processo de trazer dados e páginas de código para a memória do disco antes que ele seja exigido.

Para saber o que ele deve pré-buscar, o XP Cache Manager monitora as falhas de página que os aplicativos incorrem quando são inicializados. Por padrão, ele rastreia os primeiros 2 minutos do processo de inicialização e os primeiros 10 segundos da inicialização do aplicativo. Depois de coletar um rastreamento organizado em falhas feitas no arquivo de metadados MFT (Master File Table) NTFS (se o aplicativo acessar arquivos ou diretórios em volumes NTFS), os arquivos referenciados e os diretórios referenciados, ele notifica o componente de pré-busca do Agendador de Tarefas sinalizando um objeto de evento nomeado. O Agendador de Tarefas executa uma chamada para NtQuerySystemInformation com um tipo de informação que especifica uma consulta para um rastreamento e a lê. Depois de executar o pós-processamento nos dados de rastreamento, o Agendador de Tarefas grava-os em um arquivo em \Windows\Prefetch. O nome do arquivo é o nome do aplicativo ao qual o rastreamento se aplica, seguido por um traço e a representação hexadecimal de um hash do caminho do arquivo. O arquivo tem uma extensão ".pf", então um exemplo seria o NOTEPAD. EXE-AF43252301.PF.

Uma exceção à regra de nome de arquivo é o arquivo que armazena o rastreamento da inicialização, que é sempre nomeado NTOSBOOT-B00DFAAD.PF (uma convolução da palavra hexadecimal compatível "BAADF00D", que os programadores costumam usar para representar dados não inicializados). Quaisquer falhas cometidas nos processos System ou Ocioso são consideradas parte da inicialização, o que faz sentido, já que é no processo System que os drivers de dispositivo são carregados e inicializados.

Quando a inicialização é iniciada ou um aplicativo é executado, o Process Manager chama o Gerenciador de Cache para dar a ele a oportunidade de executar a pré-busca. O Gerenciador de Cache procura no diretório de pré-busca para ver se existe um arquivo de rastreamento para o cenário de pré-busca em questão. Quando se faz o Gerenciador de Cache chama NTFS para pré-buscar quaisquer referências de arquivo de metadados MFT, ele lê o conteúdo de cada um dos diretórios referenciados e, finalmente, abre cada arquivo referenciado e usa o Gerenciador de Memória para ler quaisquer dados e códigos especificados no rastreamento que ainda não estão na memória. O Gerenciador de Memória inicia todas as leituras de forma assíncrona e, em seguida, aguarda a conclusão delas antes de permitir que a inicialização de um aplicativo continue.

De que forma este regime proporciona benefícios em termos de desempenho? A resposta está no fato de que, durante a inicialização normal ou inicialização do aplicativo, a ordem das falhas acontece de tal forma que algumas páginas são trazidas de uma parte de um arquivo, depois outra, depois algumas de um arquivo diferente, depois algumas de um diretório e assim por diante. Esse salto corresponde diretamente a pular no disco, e a Microsoft aprendeu através da análise que os tempos de busca de disco são um fator dominante que retarda os tempos de inicialização e inicialização de aplicativos. A busca é praticamente eliminada quando a pré-busca lê dados de um determinado arquivo ou diretório de uma só vez antes de passar para outro.

Para minimizar ainda mais a busca, a cada três dias, aproximadamente, o Agendador de Tarefas organiza uma lista de arquivos e diretórios na ordem em que são referenciados durante uma inicialização ou início de aplicativo e armazena a lista em um arquivo chamado \Windows\Prefech\Layout.ini. Em seguida, ele inicia o desfragmentador do sistema com uma opção de linha de comando que diz ao desfragmentador para desfragmentar com base no conteúdo do arquivo em vez de executar uma desfragmentação completa. O desfragmentador encontra uma área contígua em um volume grande o suficiente para armazenar todos os arquivos e diretórios listados e, em seguida, move-os para a área para que sejam armazenados um após o outro.

Estes são os fundamentos do esquema de pré-busca do XP, que a Microsoft relata que acelera o processo de inicialização significativamente (você pode realmente ver que o XP inicializa muito mais rápido do que o Windows 2000). Você pode encontrar mais algumas informações sobre pré-busca e outros aprimoramentos de inicialização rápida em um white paper em http://www.microsoft.com/hwdev/fastboot/. Além disso, Dave Solomon e eu começamos a trabalhar na revisão XP-de "Inside Windows 2000" (para publicação em meados da primavera), e você encontrará uma descrição ainda mais detalhada lá.

CONEXÕES DO WINDOWS .NET

Aqueles de vocês que sentiram minha falta no TechEd podem me ouvir falar na conferência Windows .NET Connections em Scottsdale, Arizona, em 3 de outubro. Estou fazendo apresentações sobre análise de despejo de memória do Windows NT/2000 e alterações de kernel no Windows XP. Outros oradores na conferência incluem os editores contribuintes da Windows 2000 Magazine, Mark Minasi e Sean Daily. Deixe-me saber se você participar que você ouviu sobre a conferência da newsletter.

Você pode ver os resumos das minhas palestras e encontrar um link para o site Windows .NET Connections em http://www.sysinternals.com/ntw2k/info/talk.shtml.

O QUE VEM POR AÍ

MINHAS EXPERIÊNCIAS ITANIUM

A Microsoft me emprestou um sistema Itanium para que eu possa portar utilitários Sysinternals para Win64. A máquina tem algumas especificações impressionantes, a propósito: 2 processadores de 733 MHz e 8 GB (!) de RAM. Da próxima vez vou falar sobre minhas experiências de portabilidade, incluindo as alterações que tive que fazer em vários utilitários para que eles funcionem no Win64.


Obrigado por ler a Newsletter da Sysinternals.

Publicado segunda-feira, 20 de agosto de 2001 19:03 por ottoh

[Arquivo de boletins informativos ^] <[ Volume 3, Número 1] [Volume 4, Número 1 >]