Just curious, is the call to _aligned_malloc() necessary?  Put another way, can the normal malloc() return a pointer that's not at least sizeof(DWORD) aligned?