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 o valor devuelto 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.

Comentarios

La función MapFileAndCheckSum calcula una nueva suma de comprobación para el archivo y la devuelve en el parámetro CheckSum . 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 parámetro Filename que no apunta a una imagen ejecutable válida, se producirán resultados imprevisibles. 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 ú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.

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 anchos 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 Convenciones para prototipos de función.

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
Library Imagehlp.lib
Archivo DLL Imagehlp.dll

Consulte también

CheckSumMappedFile

Funciones ImageHlp