estructura CREATE_PROCESS_DEBUG_INFO (minwinbase.h)
Contiene información de creación de procesos que un depurador puede usar.
Sintaxis
typedef struct _CREATE_PROCESS_DEBUG_INFO {
HANDLE hFile;
HANDLE hProcess;
HANDLE hThread;
LPVOID lpBaseOfImage;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
LPVOID lpImageName;
WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
Miembros
hFile
Identificador del archivo de imagen del proceso. Si este miembro es NULL, el identificador no es válido. De lo contrario, el depurador puede usar el miembro para leer y escribir en el archivo de imagen.
Cuando el depurador termine con este archivo, debe cerrar el identificador mediante la función CloseHandle .
hProcess
Identificador del proceso. Si este miembro es NULL, el identificador no es válido. De lo contrario, el depurador puede usar el miembro para leer y escribir en la memoria del proceso.
hThread
Identificador del subproceso inicial del proceso identificado por el miembro hProcess . Si el parámetro hThread es NULL, el identificador no es válido. De lo contrario, el depurador tiene THREAD_GET_CONTEXT, THREAD_SET_CONTEXT y THREAD_SUSPEND_RESUME acceso al subproceso, lo que permite al depurador leer y escribir en los registros del subproceso y controlar la ejecución del subproceso.
lpBaseOfImage
Dirección base de la imagen ejecutable que se está ejecutando el proceso.
dwDebugInfoFileOffset
Desplazamiento a la información de depuración en el archivo identificado por el miembro hFile .
nDebugInfoSize
Tamaño de la información de depuración en el archivo, en bytes. Si este valor es cero, no hay información de depuración.
lpThreadLocalBase
Puntero a un bloque de datos. En el desplazamiento 0x2C en este bloque es otro puntero, denominado ThreadLocalStoragePointer
, que apunta a una matriz de bloques de almacenamiento local por subproceso por módulo. Esto proporciona a un depurador acceso a los datos por subproceso en los subprocesos del proceso que se está depurando mediante los mismos algoritmos que usaría un compilador.
lpStartAddress
Puntero a la dirección inicial del subproceso. Este valor solo puede ser una aproximación de la dirección de inicio del subproceso, ya que cualquier aplicación con acceso adecuado al subproceso puede cambiar el contexto del subproceso mediante la función SetThreadContext .
lpImageName
Puntero al nombre de archivo asociado al miembro hFile . Este parámetro puede ser NULL o puede contener la dirección de un puntero de cadena en el espacio de direcciones del proceso que se está depurando. Esa dirección puede, a su vez, ser NULL o apuntar al nombre de archivo real. Si fUnicode es un valor distinto de cero, la cadena de nombre es Unicode; de lo contrario, es ANSI.
Este miembro es estrictamente opcional. Los depuradores deben estar preparados para controlar el caso en el que lpImageName es NULL o *lpImageName (en el espacio de direcciones del proceso que se está depurando) es NULL. En concreto, el sistema no proporciona un nombre de imagen para un evento de proceso de creación y probablemente no pasará un nombre de imagen para el primer evento DLL. El sistema tampoco proporciona esta información en el caso de eventos de depuración que se originan en una llamada a la función DebugActiveProcess .
fUnicode
Valor que indica si un nombre de archivo especificado por el miembro lpImageName es Unicode o ANSI. Un valor distinto de cero indica Unicode; cero indica ANSI.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | minwinbase.h (incluye Windows.h) |