IMAGE_INFO结构(ntddk.h)
驱动程序的加载映像例程(PLOAD_IMAGE_NOTIFY_ROUTINE)使用IMAGE_INFO结构来指定加载图像信息。
语法
typedef struct _IMAGE_INFO {
union {
ULONG Properties;
struct {
ULONG ImageAddressingMode : 8;
ULONG SystemModeImage : 1;
ULONG ImageMappedToAllPids : 1;
ULONG ExtendedInfoPresent : 1;
ULONG MachineTypeMismatch : 1;
ULONG ImageSignatureLevel : 4;
ULONG ImageSignatureType : 3;
ULONG ImagePartialMap : 1;
ULONG Reserved : 12;
};
};
PVOID ImageBase;
ULONG ImageSelector;
SIZE_T ImageSize;
ULONG ImageSectionNumber;
} IMAGE_INFO, *PIMAGE_INFO;
成员
Properties
表示 属性 与结构中的所有位值联合。
ImageAddressingMode
始终设置为IMAGE_ADDRESSING_MODE_32BIT。
SystemModeImage
为新加载的内核模式组件(例如驱动程序)设置为 1,对于映射到用户空间的映像,设置为零。
ImageMappedToAllPids
始终设置为零。
ExtendedInfoPresent
如果设置了 ExtendedInfoPresent 标志,IMAGE_INFO是 IMAGE_INFO_EX的一部分。 在 Windows Vista 中添加。
MachineTypeMismatch
始终设置为零。 在 Windows 8/Windows Server 2012 中添加。
ImageSignatureLevel
代码完整性标记映像的签名级别。 此值是 ntddk.h中的 #define SE_SIGNING_LEVEL_*
常量之一。 在 Windows 8.1/Windows Server 2012 R2 中添加。
ImageSignatureType
代码完整性标记图像的签名类型。 此值是在 ntddk.h中定义的 SE_IMAGE_SIGNATURE_TYPE 枚举值。 在 Windows 8.1/Windows Server 2012 R2 中添加。
ImagePartialMap
如果为 调用的图像映射视图是未映射整个图像的部分视图,则此值为非零;如果视图映射整个图像,则为 0。 在 Windows 10/Windows Server 2016 中添加。
Reserved
始终设置为零。
ImageBase
设置为映像的虚拟基址。
ImageSelector
始终设置为零。
ImageSize
设置为映像的虚拟大小(以字节为单位)。
ImageSectionNumber
始终设置为零。
言论
如果设置了 ExtendedInfoPresent 标志,则IMAGE_INFO结构是IMAGE_INFO_EX的一部分,这是映像信息结构的更大扩展版本。 在这种情况下,加载映像通知例程可以使用 CONTAINING_RECORD 宏(在 miniport.h中)获取IMAGE_INFO_EX结构的基址。
要求
要求 | 价值 |
---|---|
标头 | ntddk.h (包括 Ntddk.h) |