在Window 64位系统中,System32文件夹存放64位的程序,SysWoW64文件夹存放32位程序,当一个32位程序访问System32文件夹时,系统会自动重定向到SysWoW64文件夹,如:当32位程序通过CreateProcess创建C:\Windows\System32\nbtstat.exe进程时,系统自动重定向到C:\Windows\SysWoW64\nbtstat.exe文件,而SysWoW64文件夹下并不存在nbtstat程序,于是返回的错误码就是2(即系统找不到指定的文件)。
解决该问题的方法是通过路径C:\Windows\sysnative\****的方式来访问系统文件,上面的情况通过C:\Windows\sysnative\nbtstat.exe这个路径就可以解决这个问题。
C:\Windows\sysnative这个文件夹实际上并不存在,是Windows 64位系统对32位程序访问64位程序的一个重定向的机制。