Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
ximagdef.h
Abstract:
This file contains image definitions and for both 32-bit and 64-bit images.
Author:
Forrest C. Foltz (forrestf) 23-May-2000
Revision History:
--*/
#if defined(_X86AMD64_)
#undef IMAGE_ORDINAL_FLAG
#undef IMAGE_ORDINAL
#undef IMAGE_THUNK_DATA
#undef PIMAGE_THUNK_DATA
#undef IMAGE_SNAP_BY_ORDINAL
#undef IMAGE_TLS_DIRECTORY
#undef PIMAGE_TLS_DIRECTORY
#undef IMAGE_NT_HEADERS
#undef PIMAGE_NT_HEADERS
#if IMAGE_DEFINITIONS == 32
#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32
#define IMAGE_ORDINAL(x) IMAGE_ORDINAL32(x)
#define IMAGE_THUNK_DATA IMAGE_THUNK_DATA32
#define PIMAGE_THUNK_DATA PIMAGE_THUNK_DATA32
#define IMAGE_SNAP_BY_ORDINAL(x) IMAGE_SNAP_BY_ORDINAL32(x)
#define IMAGE_TLS_DIRECTORY IMAGE_TLS_DIRECTORY32
#define PIMAGE_TLS_DIRECTORY PIMAGE_TLS_DIRECTORY32
#define IMAGE_NT_HEADERS IMAGE_NT_HEADERS32
#define PIMAGE_NT_HEADERS PIMAGE_NT_HEADERS32
#elif IMAGE_DEFINITIONS == 64
#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64
#define IMAGE_ORDINAL(x) IMAGE_ORDINAL64(x)
#define IMAGE_THUNK_DATA IMAGE_THUNK_DATA64
#define PIMAGE_THUNK_DATA PIMAGE_THUNK_DATA64
#define IMAGE_SNAP_BY_ORDINAL(x) IMAGE_SNAP_BY_ORDINAL64(x)
#define IMAGE_TLS_DIRECTORY IMAGE_TLS_DIRECTORY64
#define PIMAGE_TLS_DIRECTORY PIMAGE_TLS_DIRECTORY64
#define IMAGE_NT_HEADERS IMAGE_NT_HEADERS64
#define PIMAGE_NT_HEADERS PIMAGE_NT_HEADERS64
#endif
#define IMAGE_NT_HEADER(x) ((PIMAGE_NT_HEADERS)RtlImageNtHeader(x))
#ifndef _XIMAGDEF_H_
#define _XIMAGDEF_H_
//
// Macros used to determine whether an image is 32-bit or 64-bit, and an
// assert to make sure the Magic field has the same offset in both.
//
#define IMAGE_64BIT( ntheader ) \
(((PIMAGE_NT_HEADERS32)(ntheader))->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC)
#define IMAGE_32BIT( ntheader ) \
(((PIMAGE_NT_HEADERS32)(ntheader))->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC)
C_ASSERT( FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader.Magic) == FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader.Magic) );
#endif // _XIMAGDEF_H_
#endif // _X86AMD64_
|