public static extern IntPtr FindFirstFileEx( string lpFileName, FindExInfoLevels fInfoLevelId, out Win32FindData lpFindFileData, FindExSearchOps fSearchOp, IntPtr lpSearchFilter, [MarshalAs(UnmanagedType.U4)] FindExFlags dwAdditionalFlags);
private static extern NativeFindFileHandle FindFirstFileExW(String lpFileName, FindExInfoLevels fInfoLevelId, out Win32FindData lpFindFileData, FindExSearchOps fSearchOp, IntPtr lpSearchFilter, AdditionalFlags dwAdditionalFlags);
internal static extern SafeFindFileHandle FindFirstFileTransacted( [MarshalAs(UnmanagedType.LPWStr)] string lpFileName, FindExInfoLevels fInfoLevelId, out Win32FindData lpFindFileData, FindExSearchOps fSearchOp, IntPtr lpSearchFilter, FindExAdditionalFlags dwAdditionalFlags, SafeHandle hTransaction);