Compartir a través de


Función MapFileAndCheckSumA (imagehlp.h)

Calcula la suma de comprobación del archivo especificado.

Sintaxis

DWORD IMAGEAPI MapFileAndCheckSumA(
  [in]  PCSTR  Filename,
  [out] PDWORD HeaderSum,
  [out] PDWORD CheckSum
);

Parámetros

[in] Filename

Nombre de archivo del archivo para el que se va a calcular la suma de comprobación.

[out] HeaderSum

Puntero a una variable que recibe la suma de comprobación original del archivo de imagen o cero si se produce un error.

[out] CheckSum

Puntero a una variable que recibe la suma de comprobación calculada.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es CHECKSUM_SUCCESS (0).

Si se produce un error en la función, el valor devuelto es uno de los siguientes.

Código y valor devueltos Descripción
CHECKSUM_MAP_FAILURE
2
No se pudo asignar el archivo.
CHECKSUM_MAPVIEW_FAILURE
3
No se pudo asignar una vista del archivo.
CHECKSUM_OPEN_FAILURE
1
No se pudo abrir el archivo.
CHECKSUM_UNICODE_FAILURE
4
No se pudo convertir el nombre de archivo en Unicode.

Observaciones

La función mapFileAndCheckSum calcula una nueva suma de comprobación para el archivo y la devuelve en el parámetro checkSum de . Cualquier aplicación que cree o modifique una imagen ejecutable usa esta función. Las sumas de comprobación son necesarias para los controladores en modo kernel y algunos archivos DLL del sistema. El enlazador calcula la suma de comprobación original en el momento del vínculo, si usa el modificador del enlazador adecuado. Para más información, consulte la documentación del vinculador.

Se recomienda que todas las imágenes tengan sumas de comprobación válidas. Es responsabilidad del autor de la llamada colocar la suma de comprobación recién calculada en la imagen asignada y actualizar la imagen en disco del archivo.

Si se pasa un Filename parámetro que no apunta a una imagen ejecutable válida, se producirán resultados impredecibles. Se recomienda a cualquier usuario de esta función asegurarse de que se pasa una imagen ejecutable válida.

Todas las funciones ImageHlp, como esta, son un solo subproceso. Por lo tanto, las llamadas de más de un subproceso a esta función probablemente provocarán un comportamiento inesperado o daños en la memoria. Para evitar esto, debe sincronizar todas las llamadas simultáneas de más de un subproceso a esta función.

Nota La implementación Unicode de esta función llama a la implementación ASCII y, como resultado, la función puede producir un error si la página de códigos no admite los caracteres de la ruta de acceso. Por ejemplo, si pasa una ruta de acceso de archivo Unicode que no es inglés y la página de códigos predeterminada es inglés, los caracteres no en inglés no reconocidos se convierten en "??" y no se puede abrir el archivo (la función devuelve CHECKSUM_OPEN_FAILURE).
 

Nota

El encabezado imagehlp.h define MapFileAndCheckSum como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de imagehlp.h
biblioteca de Imagehlp.lib
DLL de Imagehlp.dll

Consulte también

CheckSumMappedFile

Funciones ImageHlp