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

  1. EDITORIAL

  2. O QUE HÁ DE NOVO NA SYSINTERNALS

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

    • Dentro Windows 2000, O DVD Interativo
    • Marque a data: Russinovich e Salomão ensinam juntos em Austin
    • Gestão de discos de linha de comando
    • WINHEC 2001 desliza online
    • Novas interfaces do controlador de filtro de sistema de ficheiros em XP
    • Crash Windows com um golpe de chave
    • Prefetching Windows XP
    • Windows .NET Conexões
  4. O QUE ESTÁ POR VIR

    • My Itanium Experiences

PATROCINADOR: SOFTWARE WINTERNALS

A Newsletter Sysinternals é patrocinada pela Winternals Software, na Web http://www.winternals.com. Winternals Software é o principal desenvolvedor e fornecedor de ferramentas avançadas de sistemas para Windows NT/2K/XP. Os produtos de Software Winternals incluem FAT32 para Windows NT 4.0, NTFSDOS Professional Edition (um controlador NTFS de leitura/escrita para DOS) e Recuperação Remota.

Winternals orgulha-se de anunciar a versão 1.31 do Comandante Defrag, o mais rápido e minucioso defragmentr disponíveis. Agora você pode gerir horários de desfragmentação em toda a sua empresa Windows a partir de um simples snapin MMC - sem sequer ter que instalar qualquer software cliente nos seus sistemas NT ou Windows 2000. Uma licença de 10 sistemas está disponível para compra on-line por apenas $169, e estão disponíveis descontos de quantidade agressiva. Visite http://www.winternals.com/39 para mais informações ou para baixar e usar gratuitamente durante 30 dias.

Olá a todos,

Bem-vindos ao boletim dos Sysinternals. O boletim tem atualmente 33.000 subscritores.

Uso computadores em várias capacidades diferentes: como desenvolvedor de software; como utilizador; e como administrador de sistemas (para a minha própria rede de sistemas de desenvolvimento e teste). Porque quero alcançar o público mais vasto para ferramentas de software gratuito Sysinternals e produtos comerciais Winternals, a maioria dos utilitários tem como alvo um mínimo Windows NT 4 a Windows XP, e muitos também funcionam em Windows 95 através de Windows Me. A maioria das ferramentas que escrevo são de nível de sistemas, o que significa que muitas vezes contêm código de caso especial para uma ou mais das várias variantes Windows. Infelizmente, existem diferenças significativas entre a linha NT Windows e a linha Windows 9x, e até diferenças entre versões da mesma linha.

Costumava realizar testes com vários sistemas de depurg, todos configurados para multiboot os Windows sabores que enumerou, e iniciar numa versão, testar e depois reiniciar para a próxima. Além de lento, os testes às vezes seriam distorcidos por intrometidas de testes intermédios de utilitários que eu não tinha limpo corretamente. Embora ainda tenha uma coleção de sistemas multi-ioting para depurar problemas, um produto inovador chamado VMWare(www.vmware.com)tornou os meus ciclos de testes mais rápidos e fáceis.

VMWare é um ambiente de máquina virtual que você usa para criar computadores virtuais (convidados) que funcionam em cima de Windows instalações NT, Windows 2000 ou Linux (anfitriões). Um hóspede pode executar a maioria das variantes de Windows, DOS e Linux. É desconcertante ver uma versão de um sistema operativo a funcionar em cima de outra, especialmente quando se faz uma máquina virtual de ecrã completo – não há praticamente nenhuma maneira de detetar que não está sentado no ecrã de um computador Linux em vez de um ecrã virtual de um computador Linux a funcionar em cima de Windows 2000, por exemplo. Uma máquina virtual é uma caixa imposta por software que encapsula o sistema operativo e aplicações em execução na máquina virtual para que quando tentam interagir com o hardware que acreditam estar presente, o software de máquina virtual interceta os acessos. O software de máquina virtual cria dispositivos virtuais que servem como substitutos cuidadosamente controlados para hardware real ou hardware virtual. Por exemplo, quando uma aplicação que está a ser em execução numa máquina virtual que está a ser exibida numa janela escreve para a memória de exibição da máquina virtual, o software da máquina virtual atualiza o conteúdo da janela que representa o ecrã 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 a funcionar em modo de ecrã completo, então o software de máquina virtual permitiria que tais 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 pode ter qualquer número de "sistemas de teste" espalhados pelo seu disco rígido. O que torna o VMWare ainda mais poderoso é o facto de que pode "suspender" um computador virtual, guardando o seu estado para o disco e, em seguida, retomá-lo, em segundos restaurando o estado que tinha quando suspendeu. Mas não é tudo. Uso extensivamente de uma funcionalidade chamada "discos não persistentes", que tem vMWare a iniciar um computador virtual com os seus discos virtuais contendo os conteúdos que definiu (por exemplo, apenas com uma instalação básica de SISTEMA) e depois rastrear alterações para que possa desfazê-los e voltar ao estado inicial. Se eu instalar versões de teste de um utilitário e depois precisar de ter a certeza de que estou de volta a um estado limpo que não reflita nenhuma das alterações do utilitário, simplesmente desfando as alterações. Também acho o VMWare útil nas minhas funções de administrador de utilizador e sistemas. Sempre que faço o download de uma aplicação que não sei se quero manter, em vez de possivelmente comprometer o meu sistema de desenvolvimento ou enchê-lo com detritos deixados para trás quando desinst instalado uma aplicação, simplesmente experimento-a numa máquina virtual com um disco não persistente primeiro.

Há alguns inconvenientes relativamente pequenos para a versão atual que me impediram de usar os meus verdadeiros computadores de depuragem tanto quanto eu. A primeira é que, como as máquinas virtuais não suportam o DirectX, não é possível executar o depurar SoftICE da Numega, exceto com a máquina virtual numa resolução de ecrã de 640x480. A segunda é que a virtualização das portas em série da VMWare é limitada de uma forma que impede a depurada do kernel usando Windbg ou Kd entre o anfitrião e um hóspede ou entre os hóspedes. Este último problema deve, no entanto, ser abordado na próxima grande versão da VMWare.

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

Por falar na Conferência Técnica USENIX, também coautoria de um artigo publicado lá, High-Performance Memory-Based Web Servers: Kernel e 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 estão na área da aceleração do web-servidor em modo kernel, e além de contribuir para a arquitetura, fui responsável por grande parte da implementação em Windows NT e Windows 2000. O projeto foi tão bem sucedido que consistentemente detivemos registos mundiais specweb para desempenho web, foi lançado como um produto IBM ainda em evolução chamado IBM Netfinity Web Server Accelerator, e tanto a Microsoft como a comunidade Linux incorporaram várias das ideias-chave nos seus próprios produtos (como iIS para Windows 2000 e Tux no Linux).

Por favor, passe a newsletter a amigos que acha que podem estar interessados no seu conteúdo.

Obrigado!

- Marca

O QUE HÁ DE NOVO NA SYSINTERNALS

EXPLORADOR DE PROCESSO V5.1

Process Explorer é o novo nome para HandleEx, um utilitário multiusos que mostra informações detalhadas sobre processos, os DLLs que carregaram e as pegas para os recursos do sistema operativo que eles têm aberto. Juntamente com o seu novo nome, as versões mais recentes do Process Explorer introduzem uma série de novas funcionalidades, incluindo uma atualização automática eficiente, uma coluna de utilização do CPU, a capacidade de alterar as prioridades do processo e a comunicação de IDs de sessão de processo se o sistema for um servidor terminal. Além disso, mostra muito mais informação sobre processos. Por exemplo, pode visualizar a lista de serviços em execução dentro de um processo (se aplicável), examinar as variáveis ambientais de um processo e ver linhas de comando do processo. Usando uma nova opção de triagem chamada "árvore de processo", você pode graficamente ver as relações pai-filho dos processos, algo que pode ajudá-lo a identificar o propósito de um processo. O Process Explorer funciona em todas as versões Windows 9x, bem como Windows NT 4 até Windows XP.

Algo que pode não ser imediatamente óbvio a partir da interface do Process Explorer é a sua capacidade de mostrar quais os processos que têm um ficheiro ou diretório particular aberto. Mude o visor para o modo de manuseamento e introduza o nome do ficheiro ou diretório em questão no diálogo de pesquisa. O recurso de pesquisa é mais frequentemente utilizado para rastrear o processo que o impede de eliminar ou renomear um ficheiro ou diretório, mas pode usá-lo para listar processos que também tenham DLLs específicos carregados.

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

CABO V2.0

O handle é a versão em linha de comando da funcionalidade de visualização do comando do Process Explorer que lhe permite ver as pegas nos recursos do sistema operativo, como ficheiros, que os processos têm aberto. Em alguns casos, a utilização do Handle é uma forma mais rápida de identificar um processo que tem um ficheiro ou diretório aberto do que a utilização da instalação de pesquisa do Process Explorer, porque simplesmente introduz uma parte do ficheiro ou o nome do diretório na linha de comando Handle. Além de uma procura mais eficiente de nomes de manípulos, o Handle 2.0 funciona agora em Windows 95/98/Me.

Baixar 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 é a PsInfo. O PsInfo é uma ferramenta de linha de comando que relata as características do hardware e do sistema operativo de um computador. Por exemplo, diz-lhe que sistema operativo está a funcionar, incluindo o número do pacote de serviços, a data de instalação e validade (se aplicável) e a configuração (por exemplo, controlador de domínio, servidor de membros). Também lista o tipo, a velocidade e o número de CPUs no computador, e a quantidade de memória física instalada. Esta informação torna o PsInfo útil para identificação ou inventário do sistema. Como todas as ferramentas na suite PsTools, o PsInfo funciona no local ou num computador remoto Windows NT, 2000 ou XP.

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

PSEXEC V1.24

O PsExec permite-lhe lançar processos em sistemas remotos sem ter de instalar manualmente qualquer software no sistema remoto, desde que o sistema esteja no seu Bairro da Rede. A força do PsExec encontra-se no seu suporte para o programa de consolas redirecionado I/O, onde lida com a entrada e saída de texto de um programa de consola remota como se estivesse a funcionar no seu sistema local.

A versão mais recente do PsExec suporta vários processos de execução no mesmo sistema remoto, permitindo-lhe abrir remotamente várias solicitações de comando noutro sistema, por exemplo. Também tem uma nova opção de "cópia de força" que permite especificar que pretende que o PsExec copie um ficheiro para um computador remoto para execução, substituindo qualquer versão existente.

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

PSLOGLIST V2.07

A PsLogList, outro utilitário psTools, despeja registos de eventos a partir do sistema local ou remoto. Ao contrário do eloglist, a ferramenta Windows 2000 Resource Kit com o mesmo propósito, o PsLogList apresenta a cadeia completa de eventos de um disco e, ao despejar registos remotos, utiliza os ficheiros de recursos de registo de eventos do sistema remoto em vez de do local.

A versão 2.07 do PsLogList inclui um comutador de linha de comando para que possa direcioná-lo para despejar informações de registo de registo de eventos estendidos (as informações adicionais que podem ser associadas a um registo) e um novo comutador para que possa ver os registos apenas dos últimos dias especificados.

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

LAYOUT DE FONTE DO WINDOWS XP

Já te perguntaste como é que a Microsoft organiza o código-fonte que compõe o núcleo Windows NT/2000/XP? Eu também o fiz, e percebi que a informação está disponível ao público. Sempre que a Microsoft lança uma nova construção de Windows 2000/XP, lança várias versões:

  • uma versão "livre" do uniprocessador
  • uma versão "free" do uiniprocessador que suporta mais de 4 GB de memória física
  • uma versão "grátis" do multiprocessador
  • uma versão "livre" de 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 "check-out" não é o facto de a versão "free" ser gratuita (não), mas sim que a versão "verificada", incluída no conjunto de CD da MSDN, inclui código e dados que ajudam no sistema operativo e na depuragem do controlador do dispositivo. A versão "free" é simplesmente compilada livre do código extra que está incluído nas declarações de compilação condicional.

Exemplos do código extra verificado incluem declarações de impressão de depurado que relatam o que o sistema operativo está a fazer, uma verificação de consistência mais rigorosa nos parâmetros passados nas funções do modo kernel dos controladores do dispositivo e declarações de "afirmação". Uma declaração afirma valida a suposição de um desenvolvedor sobre as condições que se aplicam a uma área de código. Por exemplo, se um ponteiro apontar para uma estrutura de dados com uma assinatura identificante, um desenvolvedor pode inserir uma afirmação nesse sentido. O que acontece quando a suposição da afirmação é violada? Isso depende da afirmação, mas no caso dos incluídos no verificado constrói-se uma mensagem de saída de depuração e, em seguida, um depurador de depurador é acionado de modo a que o depurador de kernel seja ativado (ou, se nenhum depurador estiver ativo, ocorre um acidente que, com sorte, gera um ficheiro de despejo que pode ser examinado mais tarde).

De forma a facilitar a identificação dos problemas captados pelas afirmações, as afirmações utilizadas na construção verificada imprimem o ficheiro, função e número de linha da localização da afirmação. Sou capaz de mostrar a planta da árvore de origem extraindo estas cordas com a minha utilidade de extração de cordas "cordas" e organizando-as numa visão java.

Veja o layout de origem Windows XP e saiba mais sobre afirmações http://www.sysinternals.com/ntw2k/info/xpsrctree.shtml em (note que o IE apresentará um aviso sobre o carregamento da página lentamente. Desprezem-no e verão a árvore).

DEBUGVIEW V4.13

O DebugView é um utilitário de desenvolvimento que permite capturar a saída de depurar a partir de aplicações ou controladores no sistema local ou num sistema remoto - mesmo a partir de vários sistemas simultaneamente. Este último lançamento adiciona compatibilidade com Windows XP RC 1. A DebugView trabalha em Windows 9x, Windows Me, Windows NT, Windows 2000, e Windows XP.

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

PAGEDEFRAG V2.1, CONTIG V1.41

No topo das transferências Sysinternals mais populares estão PageDefrag e Contig. PageDefrag desfragments ficheiros de dados do sistema no momento do arranque e o Contig é um utilitário de desfragmentação de ficheiros de linha de comando. As versões mais recentes destas ferramentas têm um motor de desfragmentação melhorado para Windows 2000 e cada uma tem algumas das suas próprias melhorias.

Além de desfragmentar registos e ficheiros de paging, a versão mais recente do PageDefrag também desfragmenta ficheiros de registo de eventos. E semelhante ao Chkdsk em Windows 2000, o PageDefrag tem agora uma contagem de 3 segundos de baixa durante o processo de arranque durante o qual pode premir qualquer tecla para que ele ignore a desfragmentação.

O que torna o Contig único é o facto de que podes usá-lo para desfragmentar ficheiros individuais, diretórios inteiros ou um disco inteiro. A Contig tem como objetivo otimizar ficheiros específicos que são fundamentais para o desempenho da aplicação porque, ao contrário dos desfragmentadores comerciais, não consolida o espaço livre de forma a ajudar a prevenir a fragmentação futura num disco. Além do motor de desférido melhorado, o novo Contig tem melhor formatação de saída tanto em modos não verbosos como verbosos.

Baixar PáginaDefrag v2.1 em http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml.
Baixar Contig v1.4 em http://www.sysinternals.com/ntw2k/freeware/contig.shtml.

SYSINTERNALS NA WWW.MICROSOFT.COM

Mais uma vez, aqui está a mais recente versão de referências Sysinternals em artigos da Microsoft Knowledge Base (KB) lançados desde a última newsletter. Isto eleva para 27 o número total de referências KB a Sysinternals.

  • 0x8000FFFF mensagem de "falha catastrófica" com SQL Server condutor da ODBC
    http://support.microsoft.com/support/kb/articles/Q243/3/49.ASP

  • ACC: Mensagem de erro: ActiveX componente não pode criar objeto
    http://support.microsoft.com/support/kb/articles/Q296/2/05.ASP

  • HOWTO: Determinar a versão de MSXML utilizada pelo Internet Explorer
    http://support.microsoft.com/support/kb/articles/Q296/6/47.ASP

  • Resolução de problemas "ADODB. Ligação" Erro 800a0bb9 da Recordset DTC
    http://support.microsoft.com/support/kb/articles/Q197/3/23.ASP

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

  • XADM: ID de evento 3036 e 3026 Mensagens ocorrem quando você povoa loja de correio
    http://support.microsoft.com/support/kb/articles/Q296/1/36.ASP

INFORMAÇÃO INTERNA

INSIDE WINDOWS 2000, O DVD INTERATIVO

Dave Solomon e eu escrevemos "Inside Windows 2000, 3ª Edição", o guia oficial para os internos e arquitetura de Windows 2000, e estamos entusiasmados por anunciar o lançamento iminente do tutorial de DVD "Inside Windows 2000". O tutorial consiste em 5 DVDs com mais de 9 horas de conteúdo consistindo de Dave e eu ensinando-lhe o funcionamento interno de Windows 2000 em um ambiente informal.

Os tópicos abordados incluem gestão de memória, processos e fios, armazenamento, sistemas de ficheiros, networking, e muito mais, e cada um é dividido em módulos de 10-20 minutos para uma visualização conveniente. A apresentação inclui dezenas de diagramas, demos, imagens e listas de resumos, e cada módulo termina com perguntas de revisão para testar e solidificar o seu entendimento.

Os preços finais e a data de lançamento ainda não estão finalizados, mas se desejar ser notificado do comunicado envie e-mails mailto:video@... para o seguinte com a palavra "interesse" no assunto. Ou, cuidado http://www.sysinternals.com/video/ com os detalhes.

MARQUE A DATA: RUSSINOVICH & SOLOMON ENSINA JUNTOS EM AUSTIN

Se está interessado no DVD, estará interessado numa oportunidade de ver o Dave e eu a ensinar os internos da NT ao vivo. Venha a Austin, TX de 11 a 13 de dezembro para nos ouvir apresentar a nossa aula de 3 dias Windows XP/2000/NT Internal Architecture. A aula baseia-se em "Inside Windows 2000, 3ª Edição" e abrange subsistemas ambientais, despacho de chamadas de sistema, linhas de sistema, & paragem de arranque, internalização de registo, processos e agendamento de fios, gestão de memória, segurança, sistema de E/S, armazenamento, NTFS e o gestor de cache. Ao compreender o funcionamento interno do Windows XP & 2000, pode aproveitar a plataforma de forma mais eficaz e mais eficaz para depurar e resolver problemas.

Quando os detalhes estiverem disponíveis, informaremos na newsletter e no site, por isso fique atento!

GESTÃO DE DISCOS DE LINHA DE COMANDO

Curvando-se à pressão dos administradores de sistemas, a Microsoft lançou finalmente uma ferramenta de linha de comando scriptable para gerir discos em Windows 2000. O DiskPart permite-lhe criar volumes ou divisórias, criar e partir espelhos, estender volumes e examinar detalhes dos discos, volumes e divisórias. O que é bom é que o DiskPart é um download gratuito de http://www.microsoft.com/downloads/release.asp?ReleaseID=31167.

WINHEC 2001 SLIDES ON-LINE

Se perdeu a Conferência Anual de Engenharia de Hardware da Microsoft Windows (WINHEC), ainda pode ver os slides de muitas das apresentações. Visite http://www.microsoft.com/winhec/sessions/driver.htm para uma lista de sessões, descrições e links de acompanhamento para decks de Power Point. Apresentações de interesse geral são sobre técnicas de depuração de condutores, condutores de filtros e miniportos NDIS e condutores intermédios.

NOVAS INTERFACES DO CONTROLADOR DE FILTRO SYTEM DE FICHEIRO SYTEM EM XP

Se tiver um produto de espelhamento de ficheiros em tempo real, verificação de vírus no acesso ou produto hierárquico de gestão de armazenamento baseado num controlador de filtro de sistema de ficheiros, então deverá certificar-se de que está a par das alterações introduzidas pela Microsoft no Windows XP que o afeta.

A maior mudança diz respeito às rotinas de E/S rápidas, as funções especiais que um controlador do sistema de ficheiros regista para que o gestor de memória, o Gestor de Cache e o sistema de E/S possam executar o sistema de ficheiros I/O e interagir com os controladores do sistema de ficheiros sem terem de gerar IRPs. Pode ser uma surpresa para alguns de vocês descobrir que existem 6 rotinas rápidas de E/S para as quais os controladores de filtros do sistema de ficheiros são sempre ignorados. A saber:

FastIoAcquireFileExclusive
FastIoReleaseFile
FastIoAcquireFileForCcFlush
FastIoReleaseFileForCcFlush
FastIoAcquireFileForModWrite
FastIoReleaseFileForModWrite

O Gestor de Memória liga FastIoAcquireFileExclusive e antes e depois de criar uma secção apoiada por um FastIoReleaseFile ficheiro, e outros subsistemas de modo kernel podem chamar estas rotinas para impedir temporariamente a criação de secções. O Gestor cache liga FastIoAcquireFileForCcFlush e antes e depois de descarregar todos ou parte dos FastIoReleaseFileForCcFlush dados em cache modificados de um ficheiro de volta ao disco, e o Gestor de Memória liga FastIoAcquireFileForModWrite e antes e depois de escrever páginas de FastIoReleaseFileForModWrite ficheiros mapeados sujos de volta para um ficheiro.

Em vez de invocarem funções rápidas de E/S diretamente, os subsistemas em modo kernel utilizam rotinas de tempo de execução do sistema de ficheiros de substituição (FsRtl). As rotinas de tempo de execução para as funções de E/S mais rápidas invocam os controladores de filtros, obtendo uma referência ao seu dispositivo de filtro através de uma chamada para IoGetRelatedDeviceObject o objeto do ficheiro-alvo e, em seguida, chamando a rotina de E/S rápida correspondente do filtro, mas rotinas de tempo de execução relacionadas com as chamadas rápidas de E/S acabam de ser IoGetBaseFileSystemDeviceObject listadas, que devolve o objeto do dispositivo do controlador do sistema de ficheiros subjacente. A razão pela qual o tempo de execução contorna os filtros para estas funções é, na minha opinião, um pouco coxo: o tempo de funcionamento não confia nos condutores de filtros. Se um filtro não passar estas chamadas para o controlador do sistema de ficheiros subjacente, causa corrupção de dados do sistema de ficheiros e quase certamente um acidente. Mas há muitas coisas que um condutor de filtros pode fazer para causar acidentes.

Em Windows XP o FsRtl introduz uma nova função, FsRtlRegisterFileSystemFilterCallbacks que os controladores de filtro usam para registar chamadas para estas várias operações. Isto permite que os controladores do sistema de ficheiros examinem estas operações e até mesmo falhem com elas, e o tempo de funcionamento pode garantir que o controlador do sistema de ficheiros subjacente é sempre invocado quando apropriado. Onde se pode encontrar a documentação para a função? O kit de sistema de ficheiros instalador Windows XP, que está disponível por 995$ da Microsoft:http://www.microsoft.com/ddk/ifskit/XPdefault.asp.

JANELAS DE COLISÃO COM UM TRAÇO DE CHAVE

Há algumas newsletters, disse-lhe como poderia adicionar uma definição ao Registo Windows 2000 que lhe permite iniciar uma falha de ecrã azul de um sistema de funcionamento com uma sequência de chave especial, permitindo-lhe analisar sistemas que de outra forma não estão a responder à entrada. Que tal uma maneira de bater Windows NT e Windows 2000 sem ter que definir nada no Registo?

Abra uma janela de comando-prompt, altere o diretório atual para a raiz da sua unidade de arranque (a unidade com \winnt ela) e escreva dir /s . Enquanto estiver em execução o tipo F7+Enter algumas vezes e, em seguida, abortar a listagem inserindo ctrl-C. Ou encontra imediatamente um ecrã azul ou um reboot espontâneo. Legal, não? Infelizmente, ao contrário do truque que eu anteriormente reportei, este não é um comportamento desenhado, 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 que perderam a newsletter que incluiu a definição de quebra de teclas, adicione o seguinte valor de registo ao seu registo Windows 2000 ou registo XP de acordo com as instruções no ficheiro ajuda da Microsoft Debugging Tools:

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

Reinicie e pode bloquear o sistema digitando o bloqueio do rolo duas vezes enquanto segura a tecla de controlo esquerdo.

PRÉ-DEFETCHING DO WINDOWS XP

A Microsoft focou-se Windows XP em melhorar a experiência do utilizador final, e os utilizadores consideram uma grande parte da experiência a velocidade a que um computador liga e é utilizável. Por isso, um desenvolvedor da Microsoft tem gasto muito esforço em melhorar o desempenho do processo de boot e do arranque de aplicações. Abordaram isto de várias formas: a primeira é que os condutores de dispositivos em série e de rede inicializam-se em paralelo, ao contrário do Windows 2000, onde inicializam em série. Em segundo lugar, a Winlogon já não espera que o serviço de estação de trabalho (que por si só aguarda os serviços de networking) fique disponível antes de apresentar o diálogo de início de síltipo e permitir que um utilizador se apresente. Finalmente, incorporaram uma técnica chamada "prefetching" no processo de arranque e arranque de aplicações. Vou cobrir brevemente como funciona a pré-reação e apontar-te para um livro branco que a Microsoft publicou sobre otimizações de botas.

Windows (todas as versões, com exceção do modo real Win3.1) é um sistema operativo com página de procura, onde os dados de ficheiros e o código são "defeituosos" na memória a partir do disco, à medida que uma aplicação tenta aceder ao mesmo. Os dados e o código são defeituosos em pedaços granulares de "página", onde o tamanho de uma página é ditado pelo hardware de gestão de memória do CPU. Uma página é 4 KB no x86. Prefetching é o processo de trazer dados e páginas de código para a memória do disco antes de ser exigido.

Para saber o que deve ser prefetch, o XP Cache Manager monitoriza as falhas de página que as aplicações incorrem à medida que são iniciais. Por predefinição, traça os primeiros 2 minutos do processo de arranque e os primeiros 10 segundos de arranque da aplicação. Depois de recolher um traço organizado em falhas tomadas no ficheiro metadados NTFS Master File Table (MFT) (se a aplicação aceder a ficheiros ou diretórios em volumes NTFS), os ficheiros referenciados e os diretórios referenciados, notifica o componente de prefetch do Agendador de Tarefas sinalizando um objeto de evento nomeado. O Agendador de Tarefas executa uma chamada para a NtQuerySystemInformation com um tipo de informação que especifica uma consulta para um rastreio e lê-la. Após a realização do processamento de posts nos dados de rastreio, o Agendador de Tarefas escreve-o para um ficheiro em \Windows\Prefetch . O nome do ficheiro é o nome do pedido a que o traço se aplica seguido de um traço e da representação hexadémica de um haxixe do caminho do ficheiro. O ficheiro tem uma extensão ".pf" por isso um exemplo seria NOTEPAD.EXE-AF43252301.PF.

Uma exceção à regra do nome do ficheiro é o ficheiro que armazena o traço da bota, que é sempre nomeado NTOSBOOT-B00DFAAD.PF (uma convolução da palavra compatível com a hexadecimal "BAADF00D", que os programadores usam frequentemente para representar dados não iniializados). Quaisquer falhas tomadas nos processos System ou Idle são consideradas parte da bota, o que faz sentido uma vez que está no processo do Sistema que os controladores do dispositivo carregam e iniciam.

Quando a bota começa ou uma aplicação executa o Gestor de Processos chama o Gestor de Cache para lhe dar a oportunidade de realizar a pré-refetching. O Gestor de Cache procura no diretório de prefetch para ver se existe um ficheiro de traços para o cenário de prefetch em questão. Quando se faz o Cache Manager chama o NTFS para pré-gravar quaisquer referências de ficheiros de metadados MFT, lê-se no conteúdo de cada um dos diretórios referenciados e, finalmente, abre cada ficheiro referenciado e utiliza o Gestor de Memória para ler em quaisquer dados e códigos especificados no traço que ainda não está na memória. O Gestor de Memória inicia todas as leituras assíncronas e, em seguida, espera que completem antes de deixar a startup de uma aplicação continuar.

Como é que este regime proporciona um benefício ao desempenho? A resposta reside no facto de que durante o arranque normal ou arranque de aplicação a ordem de falhas acontece de tal forma que algumas páginas são trazidas de uma parte de um ficheiro, depois outra, depois algumas de um ficheiro diferente, depois algumas de um diretório e assim por diante. Este salto corresponde diretamente a saltar no disco, e a Microsoft aprendeu através da análise que os tempos de procura de disco são um fator dominante que abranda os tempos de arranque e de arranque de aplicações. A procura é praticamente eliminada quando a pré-correção lê em dados de um determinado arquivo ou diretório de uma só vez antes de passar para outro.

Para minimizar a procura ainda mais, de três em três dias o Task Scheduler organiza uma lista de ficheiros e diretórios na ordem em que são referenciados durante um arranque ou início de aplicação e armazena a lista num ficheiro denominado \Windows\Prefech\Layout.ini . Em seguida, lança o desfragmentr do sistema com uma opção de linha de comando que diz ao defragmentr com base no conteúdo do ficheiro em vez de executar um desfrag completo. O defragmenter encontra uma área contígua num volume suficientemente grande para conter todos os ficheiros e diretórios listados e, em seguida, move-os para a área de modo a que sejam armazenados um após o outro.

Estes são os fundamentos do esquema de pré-reação XP, que a Microsoft informa que acelera significativamente o processo de arranque (pode ver que as botas XP são muito mais rápidas do que Windows 2000). Você pode encontrar mais algumas informações sobre prefetching e os outros melhoramentos de arranque rápido em um papel branco 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á.

WINDOWS .NET CONEXÕES

Aqueles que me sentiram mal na TechEd podem ouvir-me falar na conferência Windows .NET Connections em Scottsdale, Arizona no dia 3 de outubro. Vou fazer apresentações sobre Windows análise de despejo de acidentes NT/2000 e alterações no núcleo em Windows XP. Outros oradores da conferência incluem os colegas Windows editores da Revista 2000, Mark Minasi e Sean Daily. Avise-me se estiver presente que ouviu falar da conferência do boletim informativo.

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

O QUE ESTÁ POR VIR

AS MINHAS EXPERIÊNCIAS DE ITANIUM

A Microsoft emprestou-me um sistema Itanium para que eu possa levar os utilitários Sysinternals ao Win64. A máquina tem algumas especificações impressionantes, a propósito: 2 processadores 733 MHz e 8 GB (!) de RAM. Da próxima vez vou contar-te sobre as minhas experiências de porção, incluindo as mudanças que tive de fazer a vários serviços públicos para que trabalhem na Win64.


Obrigado por ler o Boletim Sysinternals.

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

[Newsletters Archive ^][ Volume 3, Número 1][Volume 4, Número 1 ]

[Newsletters Archive ^][ Volume 3, Número 1][Volume 4, Número 1 ]

A Newsletter Sistemas Internas Volume 3, Número 2

http://www.sysinternals.com
Copyright (C) 2001 Mark Russinovich