librerias para acceso a disco

30/07/2005 - 16:39 por Jordi Maycas | Informe spam
Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6, o .NET
2003

Gracias

Preguntas similare

Leer las respuestas

#1 Isidro Muñoz
02/08/2005 - 21:14 | Informe spam
Hola Jordi,

La interrupcion que controla el disco y hace escrituras y lecturas de
sectores es la 13.

En Win9x podias llamar a interrupciones directamente, en Win2000 y XP no,
para ello tienes que usar drivers, lo mismo existe algun drivers generico
que te dé esa funcionalidad.

Saludos
Isidro.

"Jordi Maycas" escribió en el mensaje
news:%
Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6, o


.NET
2003

Gracias




Respuesta Responder a este mensaje
#2 Jordi Maycas
03/08/2005 - 08:56 | Informe spam
si, el caso es que yo en DOS te lo hago medio bien, pero con vc++ 6.0 no se
si podre poner a piñon un asm int 13h.. o si me saltara una excepcion.

Me dijeron algo del createfile... pero no se porque no me convenze. En
principio sirve pa lo obvio (crear fichero), como para grabar sectores a
piñon.

O sea.. ahora me viene a la cabeza.. te acuerdas del pctools deluxe de hace
unos 10 años? Como se lo montarian para hacerlo, si se inclinaran por vc6 o
.net? Es decir, una cosa es que windows te 'proteja' memoria, y no te deje
hacer cosas indebidas.. y otra cosa es que tu quieras hacer cosas indebidas
aposta.

"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:
Hola Jordi,

La interrupcion que controla el disco y hace escrituras y lecturas de
sectores es la 13.

En Win9x podias llamar a interrupciones directamente, en Win2000 y XP no,
para ello tienes que usar drivers, lo mismo existe algun drivers generico
que te dé esa funcionalidad.

Saludos
Isidro.

"Jordi Maycas" escribió en el mensaje
news:%
Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6, o


.NET
2003

Gracias









Respuesta Responder a este mensaje
#3 RFOG
03/08/2005 - 11:15 | Informe spam
En Wed, 03 Aug 2005 08:56:55 +0200, Jordi Maycas
escribió:

si, el caso es que yo en DOS te lo hago medio bien, pero con vc++ 6.0 no
se
si podre poner a piñon un asm int 13h.. o si me saltara una excepcion.

Me dijeron algo del createfile... pero no se porque no me convenze. En
principio sirve pa lo obvio (crear fichero), como para grabar sectores a
piñon.

O sea.. ahora me viene a la cabeza.. te acuerdas del pctools deluxe de
hace
unos 10 años? Como se lo montarian para hacerlo, si se inclinaran por
vc6 o
.net? Es decir, una cosa es que windows te 'proteja' memoria, y no te



Hace 10 años el .net no existía y el windows 95 acababa de salir... primer
so de 32 bits...

deje
hacer cosas indebidas.. y otra cosa es que tu quieras hacer cosas
indebidas
aposta.



Joder, queremos churras y merinas simultáneamente. Si un SO es robusto, es
porque no se deja tocar las entretelas, porque si se las dejara tocar,
cualquiera lo podría tumbar (como en DOS, Windows 16 bits).

Con CreateFile puede abrir un disco físico usando

CreateFile("\\.\PHYSICALDRIVE0"

y una partición con

CreateFile("\\.\C:",

y luego con DeviceIOControl haces lo que te de la gana en él.

Mira la sección de Physical Disks and Volumes en tu msdn:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2005...tefile.htm

Hay veces que me da idea de responder con un RTFM, no te lo tomes a mal,
pero está todo documentado en la MSDN, simplemente hay que leer con
atención. Y la forma de acceder a bajo nivel a un disco es esa y no hay
otra... el int10 ya ni existe, porque el xp pasa olímpicamente de la bios.

Y si no te gusta, te haces un driver de disco que te permita acceder a los
registros de la controladora, lo instalas y exportas una api.

"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:
Hola Jordi,

La interrupcion que controla el disco y hace escrituras y lecturas de
sectores es la 13.

En Win9x podias llamar a interrupciones directamente, en Win2000 y XP
no,
para ello tienes que usar drivers, lo mismo existe algun drivers
generico
que te dé esa funcionalidad.

Saludos
Isidro.

"Jordi Maycas" escribió en el mensaje
news:%
Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6, o


.NET
2003

Gracias


















Por qué las matemáticas son incompatibles con el sexo:
Si una polla de 15 centímetros atrae a 10 mujeres, ¿a cuántas atraerá
una
de 30 centímetros?
Varios millones..
Powered by zxFortunes - It's free -
http://sourceforge.net/projects/zxfortune
Respuesta Responder a este mensaje
#4 Isidro Muñoz
03/08/2005 - 11:31 | Informe spam
Hola Jordi,

En la msdn viene un ejemplo de CreateFile para acceder al disco fisico, para
ello indica que tienes que tener privilegios de administrador.
http://msdn.microsoft.com/library/d...ontrol.asp
Dice que que con CreateFile obtienes el handle y luego con DeviceIoControl
lo usas.

Tambien dice que en Win9x es diferente el uso.

Personalmente haría lo siguiente en Win9x, a piñón fijo con _asm y en
Windows2000 y XP, asegurarte que es administrador el usuario que está
logeado y usar CreateFile con DeviceIoControl, ten en cuenta que en win2000
y xp o usas eso o tienes que usar un drivers no tienes otro medio ( que yo
sepa ). Estoy totalmente convencido que existe algún drivers generico para
manejar la int13.

Nunca he usado CreateFile y DeviceIoControl para esos fines con lo que te
toca investigarlo.

En los compiladores de ms-dos existia una funcion para llamar a las
interrupciones, en Visual C++ 6 no sé si la tiene me imagino que no.

if ( estamos en win9x )
{
_asm
{
...
int 13...

}
}
else
{
if ( es administrador )
{
CreateFile...
DeviceIoControl ...
}
}

Saludos
Isidro

"Jordi Maycas" escribió en el mensaje
news:
si, el caso es que yo en DOS te lo hago medio bien, pero con vc++ 6.0 no


se
si podre poner a piñon un asm int 13h.. o si me saltara una excepcion.

Me dijeron algo del createfile... pero no se porque no me convenze. En
principio sirve pa lo obvio (crear fichero), como para grabar sectores a
piñon.

O sea.. ahora me viene a la cabeza.. te acuerdas del pctools deluxe de


hace
unos 10 años? Como se lo montarian para hacerlo, si se inclinaran por vc6


o
.net? Es decir, una cosa es que windows te 'proteja' memoria, y no te deje
hacer cosas indebidas.. y otra cosa es que tu quieras hacer cosas


indebidas
aposta.

"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:
> Hola Jordi,
>
> La interrupcion que controla el disco y hace escrituras y lecturas de
> sectores es la 13.
>
> En Win9x podias llamar a interrupciones directamente, en Win2000 y XP


no,
> para ello tienes que usar drivers, lo mismo existe algun drivers


generico
> que te dé esa funcionalidad.
>
> Saludos
> Isidro.
>
> "Jordi Maycas" escribió en el mensaje
> news:%
>> Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6, o
> .NET
>> 2003
>>
>> Gracias
>>
>>
>>
>>
>
>
>



Respuesta Responder a este mensaje
#5 Jordi Maycas
03/08/2005 - 16:17 | Informe spam
si Isidro..tu en vc++ y en cualquier otro de otra manera, puedes hacer
codigo asm, vigilando lo que toques, basta con ver cualquier codigo que
requiera velocidad (juegos), y encuentras rutinas en asm para acelerar
procesos con la ayuda de herramientas de profiling.

Contestando a RFOG, con lo de hace diez años... vaya cagada el no poder
hacer algo tipo pctools deluxe porque el windows controla todo.. eso si,
para borrar algo te lo cuestiona mil veces. Ademas... en Linux puedes tocar
lo que te da la gana, y no quiero polemizar comparando agujeros... es decir,
el que te deje o no entrar a hacer cosas no quiere decir mas seguro, sino
mas cerrado, y eso a un usuario de casa le da igual, porque no sabe ni lo
que es el ensamblador, pero a un desarrollador, o a mi, me interesa
toquetear y probar cosas.

A parte, windows quiera o no quiera RFOG sigue iniciando en la direccion
0x700ch o similar, como dos 2.1... mas que nada pq hay una cosa que se llama
BIOS y dice DONDE y como debe iniciarse; a partir de ahi funciones para w9x
e irlas reutilizando hasta en el w2003... o sea.. de nuevo poco. Y por
ejemplo, para formatear.. o usas la int 21h (no se si es correcto), o te
lias a usar in y outs y accedes directo a xip's... que todabia no se donde
encuentran referencia a todo ese cacao. Otra cosa es que windows,o sea el
API, tenga una funcion para ello... pero en lo mas bajo de ella... o hay in
y out's, o interrupciones...BIOS.


"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:%
Hola Jordi,

En la msdn viene un ejemplo de CreateFile para acceder al disco fisico,
para
ello indica que tienes que tener privilegios de administrador.
http://msdn.microsoft.com/library/d...ontrol.asp
Dice que que con CreateFile obtienes el handle y luego con DeviceIoControl
lo usas.

Tambien dice que en Win9x es diferente el uso.

Personalmente haría lo siguiente en Win9x, a piñón fijo con _asm y en
Windows2000 y XP, asegurarte que es administrador el usuario que está
logeado y usar CreateFile con DeviceIoControl, ten en cuenta que en
win2000
y xp o usas eso o tienes que usar un drivers no tienes otro medio ( que yo
sepa ). Estoy totalmente convencido que existe algún drivers generico para
manejar la int13.

Nunca he usado CreateFile y DeviceIoControl para esos fines con lo que te
toca investigarlo.

En los compiladores de ms-dos existia una funcion para llamar a las
interrupciones, en Visual C++ 6 no sé si la tiene me imagino que no.

if ( estamos en win9x )
{
_asm
{
...
int 13...

}
}
else
{
if ( es administrador )
{
CreateFile...
DeviceIoControl ...
}
}

Saludos
Isidro

"Jordi Maycas" escribió en el mensaje
news:
si, el caso es que yo en DOS te lo hago medio bien, pero con vc++ 6.0 no


se
si podre poner a piñon un asm int 13h.. o si me saltara una excepcion.

Me dijeron algo del createfile... pero no se porque no me convenze. En
principio sirve pa lo obvio (crear fichero), como para grabar sectores a
piñon.

O sea.. ahora me viene a la cabeza.. te acuerdas del pctools deluxe de


hace
unos 10 años? Como se lo montarian para hacerlo, si se inclinaran por vc6


o
.net? Es decir, una cosa es que windows te 'proteja' memoria, y no te
deje
hacer cosas indebidas.. y otra cosa es que tu quieras hacer cosas


indebidas
aposta.

"Isidro Muñoz" <imunoz@()daipro.net> escribió en el mensaje
news:
> Hola Jordi,
>
> La interrupcion que controla el disco y hace escrituras y lecturas de
> sectores es la 13.
>
> En Win9x podias llamar a interrupciones directamente, en Win2000 y XP


no,
> para ello tienes que usar drivers, lo mismo existe algun drivers


generico
> que te dé esa funcionalidad.
>
> Saludos
> Isidro.
>
> "Jordi Maycas" escribió en el mensaje
> news:%
>> Hola, hay alguna funcion hecha para poder grabar sectores? Uso VC++6,
>> o
> .NET
>> 2003
>>
>> Gracias
>>
>>
>>
>>
>
>
>








Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida