Colección de estructuras de datos del núcleo de Windows

figure_datastructure_1.png

Desde CodeMachine podemos acceder a un artículo muy útil para aquellos que de alguna forma tengan que enfrentarse a la ardua tarea de depurar una aplicación en Windows y tenga que tratar con algún driver del sistema o el propio núcleo.

En dicho artículo se nos detallan varias de las estructuras de datos internas del núcleo de Windows. Por cada estructura se nos da una breve explicación sobre la misma, más algunos detalles sobres los campos más importantes de ésta.

La estructuras de datos contenidas en el artículos son las siguientes:

Doubly Linked List : LIST_ENTRY
Process and Thread : EPROCESS, KPROCESS, ETHREAD, KTHREAD
Kernel and HAL : KPCR, KINTERRUPT, CONTEXT, KTRAP_FRAME, KDPC, KAPC, KAPC_STATE
Synchronization Objects : DISPATCHER_HEADER, KEVENT, KSEMAPHORE, KMUTANT, KTIMER, KGATE, KQUEUE
Executive & RTL : IO_WORKITEM
I/O Manager : IRP, IO_STACK_LOCATION, DRIVER_OBJECT, DEVICE_OBJECT, DEVICE_NODE, FILE_OBJECT
Objects and Handles : OBJECT_HEADER, OBJECT_TYPE, HANDLE_TABLE_ENTRY
Memory Manager : MDL, MMPTE, MMPFN, MMPFNLIST, MMWSL, MMWSLE, POOL_HEADER, MMVAD
Cache Manager : VACB, VACB_ARRAY_HEADER, SHARED_CACHE_MAP, PRIVATE_CACHE_MAP, SECTION_OBJECT_POINTERS
Un recurso a tener a mano sin duda alguna.