Compartir a través de


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)

Consulte también

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext