• Viernes 15 de Noviembre de 2024, 22:55

Autor Tema:  Campaña Contra Windows Vista  (Leído 7587 veces)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Campaña Contra Windows Vista
« Respuesta #25 en: Martes 16 de Enero de 2007, 08:13 »
0
Cita de: "jojojorge"
con eso de las funciones documentadas y no documentadas no creo que exista lo que dicen pero no pueden negar que hay muchas cosas turbias. :scream:
Lo que existen son funciones indocumentadas, muchas de ellas desensambladas por los usuarios y la mayoria exportadas lo que quiere decir que en la practica son usadas. ¿Son mas rapidas? NO. ¿Son mas directas? Si, pero la documentada llama a la indocumentada que finalmente llama al Kernel. Lo mas divertido es que las funciones indocumentadas suelen tener apenas unas lineas.¿Son mas complejas? SI.

ZwCreateFile en mi Windows 2000:
Código: Text
  1.  
  2. MOV EAX,20
  3. LEA EDX,DWORD PTR SS:[ESP+4]
  4. INT 2E
  5.  
  6.  

Como ven las funciones documentadas son en su mayoria meros "stubs" que pasan a modo Kernel donde esta implementado el funcionamiento real.

Cita de: "Geo"
¿Para qué quiere el usuario final una API bien documentada?

Touché, yo tambien creo que para nada.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: Campaña Contra Windows Vista
« Respuesta #26 en: Jueves 18 de Enero de 2007, 18:49 »
0
Cita de: "Geo"
¿Para qué quiere el usuario final una API bien documentada?
¿El usuario final sabe acaso lo que es una API?

Cita de: "Last Dragon"
No se tu edad, pero tal vez tuviste acceso a computadoras entre el 90 y 94
No soy tan viejo, apenas tengo 23 :P
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Campaña Contra Windows Vista
« Respuesta #27 en: Jueves 15 de Febrero de 2007, 22:48 »
0
Cita de: "Eternal Idol"
Que no esten documentadas no significa que hagan lo mismo que otras pero mas lento. Por lo tanto sigo esperando UN ejemplo de dos funciones, una no documentada y otra que si, en el cual una de las mismas sea mas rapida.
Existe un caso donde podría ser un poco más rápido llamar a la funcion "directa":

Si sabes que en determinado estado del sistema puedes llamar directamente a la función "x", la "directa no documentada" por que sabes que no ocurrirá nada anormal. Por que generalmente una función que será de uso público pues tiene que tener una buena protección para evitar que haga alguna barbaridad por que recibió datos que no estaban en el estado esperado.... o peor por que la máquina no estaba en el estado esperado. Eso implica muchas validaciones de estado, control de errores, etc. Lo cual inevitablemente tendrá algún impacto en rendimiento pero es necesario para garantizar que la función no haga algún destrozo.

Pero al mismo tiempo recurrir a esos "atajos" puede convertirse en un criadero de bugs si no conoces, si no tienes toda la documentacion de lo que puede pasar si pasas por alto las "protecciones" de la función documentada y usas el "atajo".

Para mi en lo personal si microsoft hiciera o por lo menos debiera hacer algo sin "fallar" o "más rápido" es por que debería tener a mano mayor documentación y más detallada (me refiero a todo lo "malo" que puede pasar si ocurre x condición o lo haces de z forma) para no hacerlo de la forma que se supone que no se debería hacer...  :P

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Campaña Contra Windows Vista
« Respuesta #28 en: Viernes 16 de Febrero de 2007, 08:15 »
0
Cita de: "Amilius"
Existe un caso donde podría ser un poco más rápido llamar a la funcion "directa"
Cabe destacar que citas un texto donde pido un ejemplo real (me refiero a los dos funciones X e Y) y el caso que presentas es HIPOTETICO.

Bien, pese a ser hipotetico te aclaro que es despreciable cualquier comprobacion que se pueda hacer, si es que hay alguna ya que generalmente no hay y lo que si hay es transformacion de algunos parametros como por ejemplo cadenas ANSI a Wide y finalmente a UNICODE_STRING para llamar al Kernel que es donde se hacen las comprobaciones y se hacen SIEMPRE vengan los datos desde donde vengan (siempre que sea desde modo Usuario).

En el caso de la NTDLL.dll existe para poder proveer a diferentes subsystems de unas cuantas funciones y mas que nada para pasar a modo Kernel. Esta DLL es usada tanto por Win32 (Kernel32, User32, Gdi32, etc) como por el subsystem POSIX, el subsystem OS/2 y cualquier otro que Microsoft se inventara. Es una de las pautas de diseño que decidieron usar en su momento, asi es que podes usar fork en el subsystem POSIX (esta implementado con funciones de la NTDLL.dll) y no desde el subsystem Win32.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.