Partilhar via


[Arquivo de boletins informativos ^] <[ Volume 2, Número 5] [Volume 3, Número 2 >]

O Boletim Informativo dos Sistemas Internos Volume 3, Número 1

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


18 de abril de 2001 - Nesta edição:

  1. EDITORIAL

  2. O QUE HÁ DE NOVO NA SYSINTERNALS

    • PsService v1.01
    • PsFile v1.0
    • PsExec v1.11
    • HandleEx v4.0
    • DebugView v4.11
    • Dentro do Windows 2000, 3ª Ed.
    • Fevereiro Windows 2000 Magazine
    • Sysinternals na empresa Microsoft
  3. INFORMAÇÃO INTERNA

    • Atalhos de teclado interessantes
    • Mensagens de depuração PnP
    • Decisão de engenharia reversa
    • Novas chamadas de sistema do Windows XP
    • Rede desconectada
    • WinDev
    • TechEd Portugal
  4. O QUE VEM POR AÍ

    • Por dentro da pré-busca do Windows XP

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. 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 NE versão 1.2, uma solução de desfragmentação empresarial de baixo custo e fácil de usar que adiciona suporte NT 4 ao seu suporte existente para Windows 95/98/Me e Windows 2000. O Defrag Commander NE aproveita os desfragmentadores internos do Windows 2000 e Windows 95/98/Me e adiciona seu próprio desfragmentador poderoso para o Windows NT 4. 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 para mais informações.

Olá a todos,

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

Uma das primeiras coisas que você percebe quando instala uma versão beta do Windows XP é a interface de usuário redesenhada, chamada Luna. A aparência do Luna permeia todos os aspetos da interface, desde o comportamento do menu de inicialização até o design de menus de aplicativos e caixas de diálogo. Esta conversão total é conseguida através da utilização de um motor de "temas". Os temas são descritos em arquivos de estilo de tema (arquivos que terminam em .msstyles) e o arquivo de tema Luna, luna.msstyle, está localizado em \Windows\Resources\Themes\Luna. No mesmo diretório, você encontrará um subdiretório chamado Shell, no qual shellstyle.dll está localizado. Não está claro como o XP usa a DLL - é carregado pelo Explorer e tem uma folha de estilo HTML enterrada nele, mas sem exportações. Como comdlg.dll e kernel32.dll importá-lo, e cada aplicativo recebe uma cópia dessas DLLs, cada processo também recebe uma cópia carregada do , a biblioteca de clientes de \Windows\System32\UxTheme.DLLtemas. Esta DLL exporta funções como IsThemeActive, IsAppThemed, GetCurrentThemeName, DrawThemeBackgrounde GetThemeColor.

O Registro é onde o tema atual é especificado e a onipresença do tema configurada. Olhe para baixo HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes e você encontrará uma chave chamada Apply onde você vê valores como "cores" e "ícones" que especificam onde o tema deve estar ativo. Sob a mesma chave, a Current subchave tem o caminho para o arquivo .msstyles para o tema atual.

Dado que "skinning" se tornou a raiva para aplicativos como WinAmp e Windows Media Player, você presumiria que a Microsoft publicaria uma ferramenta que permite que terceiros desenvolvam seus próprios temas, ou pelo menos documentar o formato do arquivo e shellstyle DLL para que terceiros possam desenvolver editores de .msstyles temas. Você estaria errado, no entanto. Em "Microsoft Windows XP: O que há nele para desenvolvedores?" (publicado online em http://msdn.microsoft.com/library/default.asp?URL=/library/techart/winxpintro.htm), a Microsoft deixa claro que não tem intenção de permitir temas de terceiros:

"À primeira vista, o potencial para vários estilos do Windows XP pode parecer a funcionalidade de capa em aplicativos como o Windows Media Player, mas há diferenças. Os temas alteram o estilo visual do sistema operacional, mas ainda fornecem uma interface do usuário consistente com versões anteriores do Windows. Isto é importante, uma vez que os temas são aplicados em todo o sistema. As alterações aplicáveis a uma capa de aplicativo, como a remoção de botões, não são apropriadas no nível do sistema operacional. Os formatos de arquivo de tema não são públicos; A Microsoft mantém o controle de design para temas, para permitir uma interface de usuário consistente e garantir a continuidade do projeto. Um kit de desenvolvedor de temas não estará disponível com o Windows XP."

O argumento que tenho certeza que eles fazem para tal postura é que temas de terceiros podem, de alguma forma, quebrar a interface do usuário, e os usuários ligariam para o suporte da Microsoft para obter ajuda. Por que eles não têm o mesmo medo com o Windows Media Player, eu não sei. No entanto, há maneiras de aplicar uma aparência de tema à área de trabalho e aos aplicativos. Visite http://www.wincustomize.com/ para encontrar skins da área de trabalho do Windows, como a nova Aqua-Soft (uma skin WindowBlinds - http://www.windowblinds.net) que dá ao Windows a aparência da área de trabalho OS X da Apple. E dada a persistência da comunidade skinning em descobrir como esfolar tudo o que foi lançado, tenho certeza de que há pessoas agora fazendo engenharia reversa do formato de tema da Microsoft. É apenas uma questão de tempo até que alguém lance um editor de temas, independentemente da política da Microsoft sobre o controle de temas.

Então, o que a Microsoft fará quando os editores de temas do Windows XP e temas de terceiros começarem a aparecer? Teremos que esperar para ver, mas o comportamento da Apple pode estar nos dando uma prévia. Alguns dias atrás, a Apple emitiu uma empresa que desenvolve um editor de temas para o Mac OS uma ordem de cessar e desistir: http://www.macworld.co.uk/news/main_news.cfm?NewsID=2773. Cuidado com o desenvolvedor do tema.

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

PSSERVICE V1.01

O NT 4 e o Win2K Resource Kit têm um utilitário de controle de serviço de linha de comando, SC, desde que me lembro. SC permite visualizar e alterar o estado e configuração dos serviços Win32 nos sistemas locais ou remotos. PsService é um clone freeware de SC que tem alguns recursos extras.

A primeira é que o PsService permite que você se conecte a sistemas remotos usando credenciais de usuário alternativas. Isso é útil nos casos em que a conta a partir da qual você a executa não tem privilégios administrativos no sistema remoto, mas você tem acesso a uma conta que tem. O segundo é a capacidade de pesquisa do PsService. Se você já esqueceu qual sistema em sua rede está executando o DNS, DHCP ou algum outro serviço, você achará o recurso de pesquisa útil, porque ele permite especificar um nome de serviço e relata os computadores que executam o serviço.

O PsService depende da API do Service Control Manager, para a qual você pode encontrar a documentação completa no Platform SDK, e o PsService não requer instalação de software cliente.

Download PsService v1.01 em http://www.sysinternals.com/ntw2k/freeware/psservice.shtml.

PSFILE V1.0

PsFile é uma ferramenta que eu criei em resposta a solicitações de algo que supera as limitações do comando "net file" no Windows NT/2K. Você pode usar o comando interno "net" no NT e Win2K com a opção "file" para listar os arquivos que outros computadores abriram em compartilhamentos exportados pelo sistema. No entanto, o comando net trunca nomes de caminho longos e só funciona no sistema local.

O PsFile usa as mesmas APIs (apropriadamente, a API "Net", que está documentada no Platform SDK) como o comando net, mas não trunca nomes de arquivo e funciona local e remotamente, sem necessidade de instalação de software cliente.

Download PsFile v1.0 em http://www.sysinternals.com/pstools.htm.

PSEXEC V1.11

PsExec é um aplicativo de linha de comando para Windows NT/2K que permite executar programas em sistemas remotos. O que o torna especialmente poderoso é que ele habilita remotamente programas de console para que você possa executá-los interativamente. Por exemplo, se você iniciar o executável do prompt de comando (cmd.exe) em um sistema remoto usando PsExec, você efetivamente terá um shell remoto - e não precisará instalar nenhum software cliente.

Além de servir como um telnet leve, o PsExec permite que você habilite remotamente aplicativos "somente locais". IpConfig, a ferramenta interna que mostra a configuração de rede de um sistema, não é capaz de mostrar a configuração de sistemas remotos. Com o PsExec, no entanto, você pode iniciá-lo remotamente e visualizar sua saída localmente.

Em alguns casos, a conta na qual um aplicativo é executado é importante. O aplicativo pode precisar ser executado em sua conta para que as alterações feitas no Registro ou nos arquivos ocorram no contexto de segurança correto. Em outros casos, pode ser desejável executar o aplicativo em um diferente daquele em que você executa o PsExec, e ainda outras vezes você pode querer que o aplicativo remoto seja executado na conta do sistema. PsExec suporta todas essas situações.

Por padrão, o PsExec executa programas em um contexto de segurança "representado". Isso significa que, se você executar o PsExec na conta do administrador, o processo remoto será executado na conta do administrador. Devido a restrições no poder de representação, o processo remoto não terá acesso aos recursos da rede no sistema remoto. Se você especificar um nome de usuário e senha na linha de comando do PsExec, o PsExec iniciará o processo remoto na conta alternativa e o processo remoto terá acesso a todos os recursos de rede acessíveis a partir dessa conta. Finalmente, uma opção de linha de comando permite que você direcione o PsExec para executar o processo remoto na conta do sistema - a mesma conta em que os serviços Win32 são executados.

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

HANDLEEX V4.0

HandleEx é uma ferramenta multifacetada que mostra a lista de processos ativos em um computador, bem como os identificadores para recursos do sistema operacional que eles abriram e as DLLs que eles carregaram. Sua facilidade de pesquisa e apresentação detalhada de processos, manipuladores e propriedades de DLL fazem do HandleEx a ferramenta perfeita para rastrear problemas de versão de DLL, lidar com vazamentos e o processo que está acessando um determinado arquivo ou diretório.

Se você tem acompanhado as atualizações do Sysinternals, notará que o HandleEx saltou dois números de versão principais nos últimos meses. A primeira grande atualização, v3.0, introduziu uma série de recursos, como ícones de aplicativos na visualização de processo, dicas de ferramentas para todos os itens listview, uma atualização muito mais eficiente e um recurso de pesquisa aprimorado onde você pode clicar em itens de resultado na caixa de diálogo de localização e fazer com que o HandleEx salte para o identificador apropriado ou entrada DLL.

Talvez os recursos mais úteis para os desenvolvedores, no entanto, sejam "realce de atualização" e realce de DLL realocado. Realce de atualização refere-se ao comportamento do HandleEx quando você atualiza a exibição. Novos itens, incluindo processos, identificadores ou DLLs carregadas, que não estavam presentes antes da atualização são realçados em verde, enquanto os itens que não existem mais são realçados em vermelho. Além de avisá-lo visualmente para alterações, isso permite que você veja vividamente vazamentos de alça em andamento, onde alças recém-abertas aparecem em verde após uma atualização.

O realce HandleEx relocated-DLL está relacionado à realocação de DLL, o termo que descreve o comportamento do carregador de módulos no Windows, onde ele não pode honrar o "endereço base" preferido que os desenvolvedores especificam quando criam uma DLL. O código que um vinculador (a ferramenta usada para a fase final da construção de DLL ou EXE) produz para uma DLL tem referências de memória intra-DLL definidas com a suposição de que o carregador honrará o endereço base da DLL. O intervalo de memória no processo de carregamento de uma DLL que começa no endereço base e acomoda o tamanho da imagem DLL carregada deve estar livre para que a DLL carregue em seu endereço base preferido. Quando o endereço base é honrado para vários processos, a eficiência de uso de memória é alcançada porque todos os processos compartilham a mesma memória de código DLL.

Quando o carregador não pode honrar o endereço base de uma DLL, por exemplo, quando outro já está usando o intervalo de endereços desejado, o carregador deve executar a "realocação", que envolve a atualização de todas as referências de memória intra-DLL para refletir o endereço de carga real da DLL. Além de retardar o tempo de carregamento do processo (geralmente impercetivelmente), a imagem DLL realocada não pode ser compartilhada com outros processos que têm a DLL carregada no endereço base preferido. Isso significa que você efetivamente obtém uma segunda cópia da memória que consome DLL.

Quando você estiver no modo DLL, você pode selecionar a opção "Realçar DLLs realocadas", resultando em HandleEx mostrando entradas para DLLs que não são carregadas em seu endereço base preferido em amarelo. Os desenvolvedores podem redefinir seus endereços base DLL para evitar realocações.

E quanto ao salto do HandleEx para a versão 4.0? Esta última versão do HandleEx traz visualização completa do identificador para a plataforma Win9x/Me. Agora você pode selecionar um processo e ver as alças que eles têm abertos, o mesmo que você pode quando você executa HandleEx no WinNT/2K/XP. Não só isso, mas também como no WinNT/2K/XP, visualizar as propriedades de eventos, mutexes e semáforos revela informações sobre seu estado (mantido, sinalizado).

Download HandleEx 4.0 em http://www.sysinternals.com/ntw2k/freeware/handleex.shtml.

DEBUGVIEW V4.11

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 Beta 2, alguns recursos de usabilidade e um recurso destinado a desenvolvedores de driver de dispositivo no WinNT/2K/XP.

A caixa de diálogo de filtragem do DebugView permite definir, incluir e excluir máscaras de filtro para restringir a saída de depuração que você está interessado em ver. Além disso, você pode especificar até 5 filtros de realce diferentes, cada um com uma cor personalizável diferente. Anteriormente, se você tinha projetos que exigiam filtros diferentes, você tinha que reinserir os filtros cada vez que trocava de projeto. Com DebugView 4.11 você pode salvar filtros em um arquivo para recarga rápida. Como antes, DebugView começa com os filtros que você tinha ativo na vez anterior que saiu dele.

Às vezes, é necessário capturar um rastreamento de saída de depuração para análise posterior ou comparação com outros rastreamentos. Antes da nova versão do DebugView, a única maneira de exibir um arquivo de log era carregá-lo em um editor de texto, o que significava que você não podia aplicar filtros de realce úteis. Agora você pode carregar um arquivo de log DebugView de volta no DebugView, tornando possível ver a saída da maneira como você a viu quando a capturou originalmente. O uso de várias janelas DebugView permite comparar rastreamentos.

O novo recurso final, o registro em tempo de inicialização, complementa o suporte de despejo de memória do DebugView no NT/Win2K. Com o suporte de despejo de memória do DebugView, você captura a saída de um driver de dispositivo e, se o driver travar o sistema e você tiver despejos de memória habilitados (completo ou kernel), use o DebugView para extrair a saída de depuração do driver do despejo - permitindo que você veja a saída do driver até o ponto da falha.

O registro em tempo de inicialização permite capturar a saída de drivers que são carregados durante o processo de inicialização como drivers de inicialização ou de início do sistema. O driver DebugView captura e armazena em buffer até 1 MB de saída de depuração durante a inicialização depois de ativar o log de tempo de inicialização. Depois que o sistema estiver ativo, a execução do aplicativo DebugView importará a saída em buffer para visualização. E se o driver falhar durante a inicialização e você tiver despejos de memória ativados, o suporte de despejo de memória do DebugView permite que você veja a saída que o driver gerou antes da falha.

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

POR DENTRO DO WINDOWS 2000, 3ª EDIÇÃO

O livro oficial sobre os internos do Windows 2000 já está disponível! Esta edição, em coautoria com David Solomon (www.solsem.com) e Mark Russinovich, é mais de 40% maior do que a anterior, com nova cobertura de rede, plug-and-play, gerenciamento de energia, serviços, Registro, WMI, inicialização e desligamento e armazenamento. Ele também inclui um CD com várias ferramentas poderosas, não disponíveis em nenhum outro lugar, para investigar os internos do Windows 2000.

Se você acessar a página Amazon.com do livro, http://www.amazon.com/exec/obidos/ASIN/0735610215/o/qid%3D957490318/sr%3D8-1/ref%3Daps%5Fsr%5Fb%5F1%5F1/103-5793119-3499040/systemsinternals/107-2386425-6078131notará que apenas duas resenhas foram publicadas desde o lançamento do livro em setembro. Se você tem o livro, recomendamos fortemente que você compartilhe suas opiniões com outros potenciais leitores.

Veja o índice do livro e encomende agora através http://www.sysinternals.com/insidew2k.htm.

FEVEREIRO WINDOWS 2000 MAGAZINE

Confira a edição de fevereiro da Windows 2000 Magazine para o meu artigo sobre NT/Win2K crash dump analysis. O artigo começa levando você pelos conceitos básicos de configuração de despejos de memória e explica como o sistema operacional cria um despejo de memória (com dicas sobre por que um despejo pode falhar ao gerar). Então eu explico onde você pode obter as ferramentas de análise de despejo mais recentes e passo através do uso de um novo e poderoso utilitário da Microsoft, Kanalyze. Finalmente, dou uma olhada rápida no uso de um depurador do kernel para examinar um dump. Mesmo que apenas uma pequena fração dos lixões revele sua causa com a análise, você deve achar as informações úteis.

O artigo é publicado on-line através de um link em http://www.sysinternals.com/publ.shtml, onde você pode encontrar links para todas as nossas publicações.

SYSINTERNALS NA WWW.MICROSOFT.COM

Sysinternals apareceu em ainda mais artigos da Base de Conhecimento Microsoft (KB) desde o último boletim informativo, elevando o total que encontrei referenciando ferramentas Sysinternals para 17.

  • Q274038: PROBLEMA: Erro ASP 8002801d "Biblioteca não registrada"
    http://support.microsoft.com/support/kb/articles/Q274/0/38.ASP
    Este artigo direciona os usuários para o Regmon para solucionar erros do Ative Server Pages.

  • Q232830: COMO: Determinar a propriedade do identificador de arquivo
    http://support.microsoft.com/support/kb/articles/Q232/8/30.ASP
    Quer saber que processo abriu um ficheiro? Este artigo da Base de Dados de Conhecimento direciona você para HandleEx.

  • Q2163868: PROBLEMA: Violação de acesso durante a instalação do aplicativo quando o arquivo em uso
    http://support.microsoft.com/support/kb/articles/Q216/3/68.ASP
    Os aplicativos de instalação do Visual Basic podem falhar se um arquivo que eles estão tentando copiar estiver em uso. O HandleEx é a ferramenta ideal para rastrear o processo que está interferindo.

  • Q286198: COMO: Rastrear erros de "permissão negada" em arquivos DLL
    http://support.microsoft.com/support/kb/articles/Q286/1/98.ASP
    Usando Filemon (o artigo também menciona Regmon) você pode ver qual processo de um aplicativo COM ou MTS está recebendo um erro de "acesso negado".

  • Q246199: Erro: Configurações de localidade alteradas no procedimento armazenado estendido podem causar resultados incorretos
    http://support.microsoft.com/support/kb/articles/Q246/1/99.ASP
    Este artigo recomenda o uso de ListDLLs para ver qual versão da biblioteca C-runtime SQL Server está usando.

  • Q196453: Solução de problemas de erros http://support.microsoft.com/support/kb/articles/Q196/4/53.ASP de inicialização NTVDM e WOW Os usuários que experimentam problemas ao iniciar aplicativos de 16 bits são direcionados para Filemon para ver quais arquivos o subsistema de ambiente de 16 bits (NTVDM) tem erros de acesso.

INFORMAÇÃO INTERNA

ATALHOS DE TECLADO INTERESSANTES

Muitos de vocês provavelmente veem a tecla Windows no teclado mais recente como uma tecla simplesmente ocupando espaço. Eu era assim até recentemente, quando me deparei com um atalho de teclado com tecla do Windows para uma operação que executo com frequência, e agora estou usando o logotipo fora da tecla com meu uso frequente. Eu pensei que eu iria compartilhar alguns atalhos de teclado que eu acho útil, todos os quais funcionam em todas as versões do Windows.

Ação Atalho
Iniciar o gestor de tarefas Ctrl+Shift+Escape
Caixa de diálogo Exibir propriedades do sistema Windows+Pausa
Minimizar todas as janelas Windows+m
Maximize todas as janelas Windows+M
Abrir O Meu Computador Windows+e
Procurar um ficheiro Windows+f
Abrir a caixa de diálogo Executar Windows+r

Depois de determiná-los por tentativa e erro, David Solomon apontou que eles estão documentados na ajuda do Windows 2000 em "Atalhos de teclado natural".

MENSAGENS DE DEPURAÇÃO PNP

Se você estiver desenvolvendo drivers plug-and-play para o Windows 2000, você pode se surpreender ao saber que você pode persuadir até mesmo a compilação de varejo do Windows 2000 para produzir extensas mensagens de depuração do sistema plug-and-play durante seu processo de enumeração e carregamento de driver. Faça com que o depurador do kernel quebre no início da inicialização do sistema e defina a variável PnpEnumDebugLevel interna do kernel como 2 (a maioria das mensagens é acionada com um nível de 1). Aqui está um exemplo da saída que você verá, que mostra o PnP Manager carregando o driver swenum (driver de barramento de enumeração de software):

.
IopCallDriverAddDevice: Processing devnode 0xfe503208
IopCallDriverAddDevice: DevNode flags going in = 0x000019
IopCallDriverAddDevice: Will load driver
IopCallDriverAddDevice: Opening registry key Root\SYSTEM\0000
IopCallDriverAddDevice:         Class GUID is {4D36E97D-E325-11CE-BFC1-08002BE10318}
IopCallDriverAddDevice: Unable to open GUID\Properties key {4D36E97D-E325-11CE-BFC1-08002BE10318} - 0xc0000034
IopCallDriverAddDevice:         Value Service [Type 1, Len 14] @ 0xe14ee82c
IopCallDriverAddDevice:                 Service Name swenum
IopCallDriverAddDevice:                 DriverName is \Driver\swenum
IopCallDriverAddDevice:                 Driver Reference 0xff3a8af0
IopCallDriverAddDevice: Adding Services (type 0)
IopCallDriverAddDevice: Adding Services (type 1)
IopCallDriverAddDevice: Adding Services (type 2)
IopCallDriverAddDevice: Adding driver 0xff3a8af0
IopCallDriverAddDevice:         Routine returned 00000000
.

DECISÃO DE ENGENHARIA REVERSA

Aqueles de vocês que seguiram o Sysinternals sabem que eu não tenho acesso a nenhum código-fonte do Windows (exceto para as fontes de driver que vêm no DDK), e que eu aprendo as complexidades de sua implementação através do uso trabalhoso do SoftICE e meu próprio desmontador personalizado.

Deparei-me com um artigo, "Engenharia Reversa: Função Necessária ou Atividade Ilegal?" (http://www.planetit.com/techcenters/docs/security/news/PIT20010123S0001), que descreve uma decisão de janeiro do 9º Tribunal de Apelações do Circuito dos EUA em um caso entre a Sony e a Connectix que interessará àqueles de vocês que fizerem o mesmo. A Sony abriu o processo contra a Connectix depois que a Connectix desenvolveu seu "Virtual Game Station", um programa que permite rodar jogos da Sony PlayStation em um PC, e o tribunal decidiu que a Connectix estava dentro da lei quando fez engenharia reversa do PlayStation (através de desmontagem) para permitir que eles desenvolvessem seu emulador.

Embora o alcance da legalidade da engenharia reversa, especialmente considerando as licenças shrink-wrap que a proíbem, ainda seja vago, este caso cai do lado da engenharia reversa.

ATUALIZAÇÕES DO KERNEL DO WINDOWS XP

Ao contrário da mudança entre o NT 4 e o Windows 2000, o kernel do Windows XP sofreu alterações mais sutis, muitas das quais visam melhorias de desempenho. As APIs do kernel disponíveis para desenvolvedores de drivers foram desenvolvidas com mais de 200 novas funções de kernel exportadas, preenchendo alguns buracos anteriores. Por exemplo, Filemon e outra ferramenta Sysinternals obtêm o nome do processo que executa uma operação entrando no bloco de ambiente de processo não documentado - no Windows XP eles poderão chamar PsGetProcessImageFileName. Há quase 3 dúzias de novas chamadas Ps para obter e definir atributos de processo, novas APIs de saída de depuração que permitem classificar o tipo de saída e o nível de depuração e uma nova chamada do sistema para salvar hives do Registro. Há também um punhado de APIs como ZwQueryBootOptions, ZwSetBootEntryOrdere ZwDeleteBootEntry para editar o Windows XP de 64 bits equivalente ao Boot.ini, que em vez de ser armazenado em um arquivo, é armazenado em memória não volátil.

No entanto, há mudanças mais significativas no topo do kernel, a maioria das quais depende de drivers de dispositivo ou suporte ao kernel. Por exemplo, há um serviço de restauração do sistema que, com o auxílio de um driver de filtro do sistema de arquivos (sr.sys), mantém o controle das alterações nos arquivos para que o sistema possa ser revertido para um ponto anterior no tempo. Há um driver de filtro de armazenamento chamado volsnap.sys que pode, com a cooperação de drivers de sistema de arquivos, fazer uma cópia point-in-time de um volume. Há um serviço de comutação rápida de usuários que usa o suporte a serviços de terminal integrado ao kernel para permitir que vários usuários sejam conectados e alternados entre eles, e suporte aprimorado à API de desfragmentação fornecido pelos drivers do sistema de arquivos.

A Microsoft publicou um white paper que descreve muitos dos aprimoramentos em http://www.microsoft.com/hwdev/Whistler/download/Whistler_kernel.zip. Há vários graus de detalhe, deixando muitas perguntas sobre implementação e comportamento sem resposta, mas é uma revisão geral bastante boa. É claro que você pode olhar para futuros boletins informativos e artigos da Sysinternals, e meus artigos da revista Windows 2000, para responder a alguns deles.

REDE DESCONECTADA

Grande parte do meu desenvolvimento centra-se em aplicativos habilitados para rede, mas no Windows 2000 você não pode testar esses aplicativos quando inicializa um computador desconectado (como um laptop) na configuração padrão. Isso ocorre porque a pilha TCP/IP não é ativada, a menos que o sistema detete uma conexão de rede. Isso significa, por exemplo, que dir \\laptop\c$ (onde "laptop" é o nome do seu computador) e ping 127.0.0.1 ambos falham em sistemas desconectados. Se você tiver um computador baseado em domínio, isso também pode levar a atrasos dolorosos durante a inicialização.

Há duas soluções alternativas para isso. Uma delas é instalar o adaptador de loopback da Microsoft, que é um adaptador de rede virtual instalável usando o Assistente de Hardware. O segundo é desativar o sensor de mídia, que impede que o sistema detete que está desconectado, definindo um valor do Registro conforme descrito no artigo Q239924 da Base de Dados de Conhecimento Microsoft: http://support.microsoft.com/support/kb/articles/Q239/9/24.ASP. Com qualquer uma dessas abordagens, a pilha TCP/IP fica ativa mesmo em sistemas desconectados, permitindo que você acesse o sistema local por meio de APIs de rede e caminhos UNC (como \\laptop\c$).

WINDEV

Windev, a conferência de desenvolvedores do Windows, está sendo realizada este ano em Boston, de 11 a 15 de junho. Todos os principais nomes do Win32, sistemas e programação .NET estarão lá, e esta é a única vez este ano que você pode participar de uma sessão sobre os internos do Windows 2000 apresentada por David Solomon (www.solsem.com) e eu. Dave e eu estamos entregando em conjunto o tutorial de um dia "Inside Windows 2000 Fundamentals" no primeiro dia. Também estou ensinando uma sessão sobre programação de mecanismos de comunicação entre processos no Windows e outra sobre o que há de novo no Windows XP.

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

TECHED NÓS

TechEd é a principal conferência da Microsoft, atraindo 10.000 pessoas e esgotando nos últimos anos. Este ano está sendo realizado em Atlanta, Geórgia, de 17 a 21 de junho, e enquanto o foco está no .NET, a Microsoft me convidou para apresentar "A Tour of Sysinternals Tools" e "Introduction to Windows NT/2000 Crash Dump Analysis". David Solomon também estará lá, apresentando o gerenciamento de memória do Windows 2000 e os internos de processos e threads.

Para aqueles de vocês na Europa, você pode ver David e eu apresentarmos as mesmas sessões no TechEd Europe, que está em Barcelona de 3 a 6 de julho.

Veja meus resumos e siga um link para a página inicial do TechEd em http://www.sysinternals.com/ntw2k/info/talk.shtml.

O QUE VEM POR AÍ

POR DENTRO DA PRÉ-BUSCA DO WINDOWS XP

Uma das melhorias mais notáveis no Windows XP é o seu tempo de inicialização rápido. A pré-busca é a base da melhoria. O XP monitora o acesso ao disco durante uma inicialização, armazenando as informações para uso na inicialização subsequente, onde usa os dados para carregar aplicativos na memória antes de serem referenciados. Da próxima vez vou entrar nos mecanismos de pré-busca para explicar como a XP os implementa.


Obrigado por ler a Newsletter da Sysinternals.

Publicado quarta-feira, 18 de abril de 2001 19:04 por ottoh

[Arquivo de boletins informativos ^] <[ Volume 2, Número 5] [Volume 3, Número 2 >]