2010-12-28 6 views
11

NT tiene una API principalmente no documentada, llamada la "API nativa", sobre la que se implementan los subsistemas comunes (es decir, la API de Windows, la API OS/2 y POSIX (generalmente llamados "Interix" subsistemas actuales). Existen¿Hay libros o sitios web actualizados en la API nativa de Windows NT?

Varios libros y sitios web que tratan de documentar esta API:

Desafortunadamente, ninguno de los libros o sitios web en los que puedo tener acceso intenta tocar las versiones de 64 bits de Windows (excepto el WDK por supuesto, pero el WDK es limitado ...). Las llamadas API son las mismas: el gran problema tiene que ver con las definiciones de la estructura en sí mismas. A saber, que un valor de puntero y DWORD tienen el mismo tamaño en las plataformas de 32 bits, pero son diferentes en las plataformas x64. Por lo tanto, los bits de "relleno desconocido" de las estructuras que a menudo se definen como una matriz de DWORD son incorrectos en las ventanas x64, y el resultado es una completa basura.

He estado trabajando manualmente alrededor de este tipo de cosas agregando relleno adicional a mano por llamada API, pero esto se está volviendo realmente frustrante, y sería bueno tener un recurso que acaba de documentar estas cosas de manera que Usaría correctamente punteros en lugar de DWORD cuando fuera necesario, de modo que una única definición de estructura podría servir para Windows de 32 bits y de 64 bits.

¿Existe tal recurso?

+0

No he visto nada en x64 para ser sincero, pero es posible que tenga suerte al comprobar si ntlib recibió una actualización de 64 bits, también puede consultar openrce.org, ver si tienen algo. De lo contrario, tendrá que esperar una fuga de fuente de Windows de 64 bits: p – Necrolis

Respuesta

9

¿http://doxygen.reactos.org/annotated.html ayuda? ReactOS obviamente no es Windows, pero tiene que implementar suficiente API nativa para ser compatible con los controladores y programas que usan las API no documentadas, por lo que podría ser suficiente para ayudarlo.

+0

Hmm ... interesante. +1. –

+0

También puede considerar la implementación de Wine de [ntdll] (http://source.winehq.org/source/dlls/ntdll) como documentación –

Cuestiones relacionadas