Compartir a través de


PIMAGEHLP_STATUS_ROUTINE función de devolución de llamada (imagehlp.h)

Función de devolución de llamada definida por la aplicación que se usa con la función BindImageEx . Se llama a la rutina de estado durante el proceso del enlace de imagen.

El tipo PIMAGEHLP_STATUS_ROUTINE define un puntero a esta función de devolución de llamada. StatusRoutine es un marcador de posición para el nombre de función definido por la aplicación.

Sintaxis

PIMAGEHLP_STATUS_ROUTINE PimagehlpStatusRoutine;

BOOL PimagehlpStatusRoutine(
  [in] IMAGEHLP_STATUS_REASON Reason,
  [in] PCSTR ImageName,
  [in] PCSTR DllName,
  [in] ULONG_PTR Va,
  [in] ULONG_PTR Parameter
)
{...}

Parámetros

[in] Reason

Estado actual de la operación de enlace. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
BindOutOfMemory
0
Memoria insuficiente El valor parámetro es el número de bytes del intento de asignación.
BindRvaToVaFailed
1
La dirección virtual relativa no es válida para la imagen. No se usa el valor parameter .
BindNoRoomInImage
2
No hay espacio en la imagen para la nueva tabla de importación de formato. No se usa el valor parameter .
BindImportModuleFailed
3
Error en la importación del módulo. No se usa el valor parameter .
BindImportProcedureFailed
4
Error en la importación de procedimiento. El valor parámetro es el nombre de la función.
BindImportModule
5
Se está iniciando la importación de módulos. No se usa el valor parameter .
BindImportProcedure
6
Se está iniciando la importación de procedimiento. El valor parámetro es el nombre de la función.
BindForwarder
7
El valor parámetro es el nombre de la función reenviada.
BindForwarderNOT
8
El valor parameter es el nombre de la función no reenviada.
BindImageModified
9
Imagen modificada. No se usa el valor parameter .
BindExpandFileHeaders
10
Encabezados de archivo expandidos. El valor del parámetro es el número de bytes.
BindImageComplete
11
El enlace está completo. Para obtener más información sobre el valor De parámetro , vea la siguiente sección Comentarios.
BindMismatchedSymbols
12
La suma de comprobación no coincide. El valor parameter es el nombre del archivo de símbolos.
BindSymbolsNotUpdated
13
No se actualizó el archivo de símbolos. El valor parámetro es el nombre del archivo de símbolos no actualizado.

[in] ImageName

Nombre del archivo que se va a enlazar. Este valor puede ser un nombre de archivo, una ruta de acceso parcial o una ruta de acceso completa.

[in] DllName

Nombre del archivo DLL.

[in] Va

Dirección virtual calculada.

[in] Parameter

Cualquier información de estado adicional. Este valor depende del valor del parámetro Reason . Para obtener más información, vea el fragmento de código en la sección Comentarios siguiente.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE. Para recuperar información de error extendida, llame a GetLastError.

Comentarios

Todas las funciones ImageHlp, como esta, son un único subproceso. Por lo tanto, es probable que las llamadas desde más de un subproceso a esta función producirán un comportamiento inesperado o daños en la memoria. Para evitarlo, debe sincronizar todas las llamadas simultáneas de más de un subproceso a esta función.

En el fragmento de código siguiente se describe cómo usar el valor va cuando el estado es BindImageComplete.

case BindImageComplete:
    if (fVerbose) {
        fprintf(stderr, "BIND: Details of binding %s\n", ImageName );
        NewImports = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)Va;
        NewImport = NewImports;
        while (NewImport->OffsetModuleName) {
            fprintf( stderr, "    Import from %s [%x]",
                     (LPSTR)NewImports + NewImport->OffsetModuleName,
                     NewImport->TimeDateStamp
                   );
            if (NewImport->NumberOfModuleForwarderRefs != 0) {
                fprintf( stderr, " with %u forwarders", NewImport-> 
                         NumberOfModuleForwarderRefs );
            }
            fprintf( stderr, "\n" );
            NewForwarder = (PIMAGE_BOUND_FORWARDER_REF)(NewImport+1);
            for (i=0; i<NewImport->NumberOfModuleForwarderRefs; i++) 
            {
                fprintf( stderr, "        Forward to %s [%x]\n",
                   (LPSTR)NewImports + NewForwarder->OffsetModuleName,
                   NewForwarder->TimeDateStamp);
                NewForwarder += 1;
            }
            NewImport = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)NewForwarder;
        }
    }
    break;

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado imagehlp.h

Consulte también

BindImageEx

Funciones ImageHlp