One thing that surprises designers porting applications to, or writing applications for, Windows NT is how easy it is to get their application to run on RISC processors. There are virtually no processor dependencies in the Win32™ API layer.
However, you can give up a lot of performance in your applications if your data is not properly aligned. The right way to handle this problem is to align the data in your source for both RISC and non-RISC machines. You want to assure that you have DWORDs on DWORD boundaries, and LARGE_INTEGERS on 8-byte boundaries. Normally the compiler makes this happen, but there are cases when you need to force unalignment, such as data coming in from a file or from over a network. Such structures may not follow these alignment rules.
In this case, you will want to use the pragmas PACK and UNPACK to define the structures, and the modifier UNALIGNED to declare pointers to them. This will get the compiler to generate the appropriate code. If you do not do this you will get alignment faults. On some systems these will simply trap and you can fix your program. We are more concerned about the systems that handle your unaligned references with a trap handler. This will slow your application down in a way that is not very obvious.