Platform SDK: Debugging and Error Handling

ImageGetDigestStream

The ImageGetDigestStream function returns the data to be digested from a given image file, subject to the passed DigestLevel parameter.

BOOL ImageGetDigestStream(
  HANDLE FileHandle,               
  DWORD DigestLevel,               
  DIGEST_FUNCTION DigestFunction,  
  DIGEST_HANDLE DigestHandle,      
);

Parameters

FileHandle
[in] Handle to the image file to be modified. This handle must be opened for FILE_READ_DATA access.
DigestLevel
[in] Specifies which aspects of the image are to be included in the returned data stream. This parameter can be one or more of the following values.
Value Meaning
CERT_PE_IMAGE_DIGEST_DEBUG_INFO Include symbolic debugging information.
CERT_PE_IMAGE_DIGEST_RESOURCES Include resource information.
CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO Include all import information.

DigestFunction
[in] Pointer to a callback routine to process the data. For more information, see DigestFunction.
DigestHandle
[in] User-supplied handle to the digest. This parameter is passed to DigestFunction as the first argument.

Return Values

If the function succeeds, the return value is TRUE.

If the function fails, the return value is FALSE. To retrieve extended error information, call GetLastError.

Remarks

The ImageGetDigestStream function returns the data to be digested from a specified image file, subject to the passed DigestLevel parameter. The order of the bytes will be consistent for different calls, which is required to ensure that the same message digest is always produced from the retrieved byte stream.

To ensure cross-platform compatibility, all implementations of this function must behave in a consistent manner with respect to the order in which the various parts of the image file are returned.

Data should be returned in the following order:

  1. Image (executable and static data) information.
  2. Resource data.
  3. Debugging information.

If any of these are not specified, the remaining parts must be returned in the same order.

Requirements

  Windows NT/2000: Requires Windows NT 4.0 or later.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in Imagehlp.h.
  Library: Use Imagehlp.lib.

See Also

Image Help Library Overview, ImageHlp Functions