// InterruptHandle 16-31 : OffsetHigh\r
// InterruptHandle 32-63 : OffsetUpper\r
//\r
- ((UINT16 *) &InterruptHandle)[0] = (UINT16) IdtGateDecriptor->Bits.OffsetLow;\r
- ((UINT16 *) &InterruptHandle)[1] = (UINT16) IdtGateDecriptor->Bits.OffsetHigh;\r
- ((UINT32 *) &InterruptHandle)[1] = (UINT32) IdtGateDecriptor->Bits.OffsetUpper;\r
+ InterruptHandle = ((UINTN) IdtGateDecriptor->Bits.OffsetLow) |\r
+ (((UINTN) IdtGateDecriptor->Bits.OffsetHigh) << 16) |\r
+ (((UINTN) IdtGateDecriptor->Bits.OffsetUpper) << 32) ;\r
\r
return InterruptHandle;\r
}\r