Device\PhysicalMemory Object
O que o Objeto dispositivo\memória física faz?
O Objeto da seção \dispositivo\memória física é usado por alguns aplicativos para obter acesso à memória física. Um exemplo comum desse uso são os aplicativos de gerenciamento que tentam ler a SMBIOS (System Management BIOS) ou outros dados da BIOS armazenados na memória física de 1 MB mais baixa.
A quem se aplica esse recurso?
Ele interessa aos desenvolvedores de aplicativos de hardware e gerenciamento de hardware.
Que funcionalidade existente foi alterada no Windows Server 2003 Service Pack 1?
Objeto da seção dispositivo\memória física
Descrição detalhada
No Windows Server 2003 SP1, não é permitido o acesso ao objeto dispositivo\memória física no modo do usuário. Todas as formas de acesso (leitura, gravação) serão recusadas quando o objeto \dispositivo\memória física for acessada a partir de um aplicativo no modo do usuário. O acesso ao objeto \dispositivo\memória física é recusado independente do contexto do usuário (Administradores, Usuários, Sistema Local, etc.) em que o aplicativo está sendo executado.
O acesso no modo de kernel (driver) ao objeto dispositivo\memória física não foi alterado no Windows Server 2003 SP1.
Não há meios de reverter esse comportamento alterado no Windows Server 2003 SP1.
Por que essa alteração é importante? Que ameaças esse recurso ajuda a atenuar?
Essa alteração foi feita para ajudar a evitar as explorações de segurança que poderiam aproveitar a funcionalidade do objeto dispositivo\memória física a partir do modo de usuário.
Nas versões anteriores do Windows, o acesso ao objeto dispositivo\memória física física era protegido pela ACL (lista de controle de acesso). Entretanto, a ACL pode ser inadvertidamente alterada. A rejeição de todo o acesso ao objeto \dispositivo\memória física a partir do modo de usuário garante que esse cenário não ocorra.
O que funciona de forma diferente? Há dependências?
Enquanto a maioria dos aplicativos não tentam acessar a memória física, alguns aplicativos de gerenciamento que exigem informações da BIOS podem ser afetados por essa alteração. Muitos desses aplicativos podem estar tentando ler os dados da SMBIOS.
Como resolvo esses problemas?
Os fornecedores de aplicativos de gerenciamento devem rever seus produtos que acessam o objeto \dispositivo\memória física e implementar uma das soluções propostas nesta seção.
Observação |
|---|
| Os métodos a seguir podem ser usados para ler dados da tabela de firmware e da memória física baixa a partir de um aplicativo Windows Server 2003 SP1. Os aplicativos que exigem acesso de gravação à memória física baixa devem fazê-lo de um driver do modo de kernel. |
Informações de leitura da SMBIOS
O WMI (Instrumentação de Gerenciamento do Windows) é o método preferido de leitura das informações da SMBIOS no Windows. A WMI oferece suporte de leitura de propriedades individuais da SMBIOS (como a versão da BIOS ou o fabricante do sistema) a partir das classes do Win32 contidas na raiz\espaço para nome cimv2.
A WMI também oferece suporte à leitura do conteúdo completo dos dados da SMBIOS em um único buffer usando a classe MSSMBios_RawSMBiosTables dentro da raiz\espaço para nome wmi. A propriedade de SMBiosData devolve um buffer contendo a tabela completa de dados da SMBIOS, exceto o Ponto de entrada da tabela de estrutura da SMBIOS como definido na seção 2.1.1 da especificação da SMBIOS.
A WMI oferece suporte ao COM e ao API de script para acessar informações da WMI. Além disso, a WMI é suportada nas versões para Windows XP SP2 e Windows Server 2003 SP1 do WinPE (Ambiente de Pré-instalação do Windows).
Preciso alterar meu código para trabalhar com o Windows Server 2003 Service Pack 1?
Caso seu aplicativo use o objeto dispositivo\memória física você precisará alterar o seu para que o aplicativo funcione no Windows Server 2003 SP1. Há dois novos APIs de modo de usuário que podem ser usados pelos aplicativos para a leitura de várias tabelas de firmware do sistema. Esses APIs podem ser usados para a leitura de dados SMBIOS e ACPI, bem como dados não processados da BIOS da memória física baixa. Os detalhes sobre a implementação de APIs estão disponíveis em Platform SDK no site MSDN. A duas APIs a seguir são novas:
-
EnumSystemFirmwareTables, descrita no site da Microsoft em http://go.microsoft.com/fwlink/?LinkId=45562. -
GetSystemFirmwareTable, descrita no site da Microsoft em http://go.microsoft.com/fwlink/?LinkId=45563.
Para obter mais informações
Os recursos da Web a seguir podem ser de interesse caso seu sistema passe por essa alteração na funcionalidade:
-
A seção do WMI (Instrumentação de Gerenciamento do Windows) do Windows Platform SDK disponível no site da Microsoft em http://go.microsoft.com/fwlink/?LinkId=159.
-
A especificação padrão do SMBIOS (System Management BIOS) fornecida pela DMTF (Distributed Management Task Force, Inc.) disponível no site da DMTF em http://go.microsoft.com/fwlink/?LinkId=38721.
-
A ferramenta Windows PE (Windows® Preinstallation Environment) da Microsoft®, disponível para download no site da Microsoft em http://go.microsoft.com/fwlink/?LinkId=38722.

Observação