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

#6 Zephryn Xirdal
03/08/2005 - 17:06 | Informe spam
"Jordi Maycas" escribió en el mensaje
news:upve$
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.




Tienes un API para hacer eso: CreateFile y DeviceIOControl. Otra cosa es que
no te guste.

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.



El XP sólo usa la BIOS para el BOOT de la placa base y para las rutinas del
POST, y en BIOS más o menos modernas, tener una idea del hardware
instalado... Todo lo demás lo hace como tu dices, con INs, OUTs y escrituras
directas en los registros... Si no fuera así, una controladora SCSI tiene su
propia BIOS, que suministra una API, y sin embargo, necesitas el driver del
fabricante. ¿Para qué? Pues para saber dónde hacer esos INs y esos OUTs
(bueno, realmente eso lo hace el driver, que suministra una API al XP).


"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
#7 Isidro Muñoz
03/08/2005 - 19:44 | Informe spam
Jordi, una aplicacion tipo PcTools o Norton Disk puedes seguir haciendola
pero evidentemente independiente del windows. O sea, tendras que hacer tu
propio arranque.

Sin animo de ofender ¿ que edad tienes ?, me recuerdas a mi epoca de 19 años
en la que uno queria reventarlo todo e ir en contra de todo. Yo me acuerdo
cuando salio windows que yo decia
"seran aguafiestas, yo aqui currandome un entorno grafico peleandome con los
registros de la vga para conseguir modos especiales graficos, en aquellos
tiempos el famoso modo 640x480 a 256 colores, eso era una historia absoluta
de programar, registro directos con la vga, etc.etc. Y decia con el windows
hasta el mas tonto va a saber programar porque cualquiera te va a poder
hacer una aplicacion grafica, y ademas usar la impresora, etc.etc."

Pero despues ya de los años me he dado cuenta que uno no lo puede controlar
absolutamente todo, el cerebro da de sí hasta cierto punto.
Si ahora mismo siguieramos programando al estilo de msdos e intentaramos
hacer aplicaciones:

1.- conexion base de datos
2.- conexiones internet.
3.- esquemas xml
4.- entornos graficos
5.- sonidos
6.- video
7.- impresoras
8.- etc.

Sería imposible de hacerlo uno a pelo todo. Tendiramos que usar librerias
para todo ello, de hecho me imagino que en linux hay que usar librerias para
todo. A veces nos aferamos a nuestro conocimiento para intentar imponer
nuestro criterio.

Al final hay que acachar la cabeza, si trabajo en linux esto es lo que hay,
y si trabajo en windows esto es lo que hay, pensar de otra forma es
complicarnos la vida absurdamente para luego pasar por el aro.

Jordi que no te quiero ofender que coste, pero me recuerdas mi epoca
rebelde, y que conste que viva la rebeldia.

Saludos
Isidro

"Jordi Maycas" escribió en el mensaje
news:upve$
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
#8 Jordi Maycas
03/08/2005 - 20:50 | Informe spam
tienes razon.. en este terreno soy rebelde... o sea... por ejemplo, me
molesta un monton por ejemplo hacer un cubo con el solidworks... guardarlo
en ASCII y para visualizarlo, rotarlo y escalarlo.. me vea como lanzado
hacia las directx o opengl y para hacer eso.. me tenga que volver loco para
localizar como se inicializa todo eso, y luego.. no encuentro donde narices
estan las matrices de rotacion y traslacion... o sea.. q todo esta muy
escondido.. y no es que me guste reinventar la rueda, pero me gusta saber el
porque de las cosas.. eso de que me lo den todo hecho... jajaa.

A parte me revienta q el modo 640x480 y 256 colores de windows no se
corresponda con el mismo en la BIOS.. jaja yo quiero el mismo modo grafico,
para hacer una ventana igual q windows. jajaj.

Bueno.. tranquilos q en dos dias me voy de vacaciones.. lo malo es q me
llevo el portatil con el vstudio instalado.. y.. tal vez me lleve el libro
de vc++ 6 para coger dolor de cabeza, con tanta leche de funciones para
poner un hola mundo con el mfc appwizard, con lo facil q era poner un print
"hola".

"Isidro Muñoz" <imunoz@()daipro.net> wrote in message
news:%
Jordi, una aplicacion tipo PcTools o Norton Disk puedes seguir haciendola
pero evidentemente independiente del windows. O sea, tendras que hacer tu
propio arranque.

Sin animo de ofender ¿ que edad tienes ?, me recuerdas a mi epoca de 19
años
en la que uno queria reventarlo todo e ir en contra de todo. Yo me acuerdo
cuando salio windows que yo decia
"seran aguafiestas, yo aqui currandome un entorno grafico peleandome con
los
registros de la vga para conseguir modos especiales graficos, en aquellos
tiempos el famoso modo 640x480 a 256 colores, eso era una historia
absoluta
de programar, registro directos con la vga, etc.etc. Y decia con el
windows
hasta el mas tonto va a saber programar porque cualquiera te va a poder
hacer una aplicacion grafica, y ademas usar la impresora, etc.etc."

Pero despues ya de los años me he dado cuenta que uno no lo puede
controlar
absolutamente todo, el cerebro da de sí hasta cierto punto.
Si ahora mismo siguieramos programando al estilo de msdos e intentaramos
hacer aplicaciones:

1.- conexion base de datos
2.- conexiones internet.
3.- esquemas xml
4.- entornos graficos
5.- sonidos
6.- video
7.- impresoras
8.- etc.

Sería imposible de hacerlo uno a pelo todo. Tendiramos que usar librerias
para todo ello, de hecho me imagino que en linux hay que usar librerias
para
todo. A veces nos aferamos a nuestro conocimiento para intentar imponer
nuestro criterio.

Al final hay que acachar la cabeza, si trabajo en linux esto es lo que
hay,
y si trabajo en windows esto es lo que hay, pensar de otra forma es
complicarnos la vida absurdamente para luego pasar por el aro.

Jordi que no te quiero ofender que coste, pero me recuerdas mi epoca
rebelde, y que conste que viva la rebeldia.

Saludos
Isidro

"Jordi Maycas" escribió en el mensaje
news:upve$
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
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>> >
>>
>>
>>
>
>
>








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida