使用位域编写C结构

时间:2015-09-13 09:01:32

标签: c windows structure

我想转换这个8字节结构:

nt!_POOL_HEADER
   +0x000 PreviousSize     : Pos 0, 9 Bits
   +0x000 PoolIndex        : Pos 9, 7 Bits
   +0x002 BlockSize        : Pos 0, 9 Bits
   +0x002 PoolType         : Pos 9, 7 Bits
   +0x000 Ulong1           : Uint4B
   +0x004 PoolTag          : Uint4B
   +0x004 AllocatorBackTraceIndex : Uint2B
   +0x006 PoolTagHash      : Uint2B

进入像这样的C结构:

struct _POOL_HEADER {
    PreviousSize;    // what SIZE do i Need to specify here ?
    PoolIndex;       // what SIZE do i Need to specify here ?
    BlockSize;       // what SIZE do i Need to specify here ?
    PoolType;        // what SIZE do i Need to specify here ?
    unsigned int Ulong1;
    unsigned int PoolTag;
    unsigned short AllocatorBackTraceIndex;
    unsigned short PoolTagHash;
};

我知道这可以用位域来完成但是怎么做? 这是在x86上。

0 个答案:

没有答案