INFO: Unidade Direct Access no Win32

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 100027
Sumário
Para abrir um disco rígido físico para acesso directo ao disco (raw E/s) numa aplicação baseada no Win32, utilize um nome de dispositivo do formulário
\\.\PhysicalDriveN
em que N é 0, 1, 2 e por aí em diante, representando cada uma das unidades físicas no sistema.

Para abrir uma unidade lógica, acesso directo está no formato
\\.\X:
em que x é uma letra de partição de disco rígido, unidade de disquetes ou unidade de CD-ROM.
Mais Informação
Pode abrir um físico ou unidade lógica com a interface de programação de aplicações (API) CreateFile() estes nomes de dispositivo fornecidos que tiver direitos de acesso apropriados para a unidade (ou seja, tem de ser um administrador). Tem de utilizar os sinalizadores de CreateFile() FILE_SHARE_READ e FILE_SHARE_WRITE para aceder à unidade.

Depois da unidade lógica ou física tiver sido aberta, é possível efectuar E/s directa aos dados na unidade de toda. Quando executar a E/s do disco directa, tem de procura, leitura e escrita em múltiplos de tamanhos de sector do dispositivo e os limites do sector. Chame DeviceIoControl() utilizando IOCTL_DISK_GET_DRIVE_GEOMETRY para obter os bytes por sector, número de sectores, sectores por faixa e por aí em diante, para que possa determinar o tamanho do buffer que vai necessitar.

Nota que uma aplicação baseada no Win32 não é possível abrir um ficheiro utilizando nomes de objectos internos do Windows NT; por exemplo, a tentar abrir uma unidade de CD-ROM através da abertura
\Device\CdRom0
não funciona porque não é um nome de dispositivo Win32 válido. Uma aplicação pode utilizar a API QueryDosDevice() para obter uma lista de todos os nomes de dispositivo Win32 válidos e ver o mapeamento entre um nome de dispositivo Win32 específico e um nome de objecto interno do Windows NT. Uma aplicação executada num nível de privilégios suficientes pode definir, redefinir ou eliminar mapeamentos de dispositivos Win32 ao chamar a API DefineDosDevice().

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 100027 - Última Revisão: 05/06/2003 18:12:21 - Revisão: 2.0

Microsoft Win32 Application Programming Interface

  • kbmt kbapi kbfileio kbinfo kbkernbase KB100027 KbMtpt
Comentários