MSDN ブログの記事を読んだ後に疑問が生じます。. この記事では、 aFILETIMEを anにキャストすると、位置合わせされていない__int64ポインターが作成される可能性があると述べています。
FILETIME、LUID、およびLUID_AND_ATTRIBUTESstructs は、次のように Windows ヘッダーで宣言されています。
  typedef struct FILETIME {
      DWORD dwLowDateTime;
      DWORD dwHighDateTime;
  }
  typedef struct LUID {
      ULONG LowPart;
      LONG  HighPart;
  }
  typedef struct LUID_AND_ATTRIBUTES {
      LUID  Luid;
      DWORD Attributes;
  }
FILETIMEとLUIDstructs は同様のレイアウトを持っているため、 a も として扱うと、LUID位置合わせされていない__int64ポインターが作成される可能性があります。ただし、Windows.pas(ここでは Delphi XE3) これを実践しています。たとえば、次のようになります。
  {$ALIGN 4}
  LUID_AND_ATTRIBUTES = record
    Luid      : Int64;  // Here, LUID is treated as Int64
    Attributes: DWORD;
  end;
  {$ALIGN ON}
別の例は
  function LookupPrivilegeValue(lpSystemName, lpName: LPCWSTR;
      var lpLuid: Int64): BOOL; stdcall; // LUID is treated as Int64
/の  ようにFILETIME、またはLUID 直接構造体を安全に扱う方法は? キーは何ですか?UInt64Int64