summaryrefslogtreecommitdiff
path: root/src/port/win32ntdll.c
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2022-07-20 13:50:57 +1200
committerThomas Munro <tmunro@postgresql.org>2022-07-20 13:55:52 +1200
commit9430fb407bb64cc842e56fb5844265a9343dafba (patch)
treea241a5a72a450498c746d8b2a0e8d8f25f741b4b /src/port/win32ntdll.c
parentb24b2be119c4cccceae838b62a3519a6d70b9476 (diff)
Add wal_sync_method=fdatasync for Windows.
Windows 10 gained support for flushing NTFS files with fdatasync() semantics. The main advantage over open_datasync (in Windows API terms FILE_FLAG_WRITE_THROUGH) is that the latter does not flush SATA drive caches. The default setting is not changed, so users have to opt in to this. Discussion: https://postgr.es/m/CA%2BhUKGJZJVO%3DiX%2Beb-PXi2_XS9ZRqnn_4URh0NUQOwt6-_51xQ%40mail.gmail.com
Diffstat (limited to 'src/port/win32ntdll.c')
-rw-r--r--src/port/win32ntdll.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/port/win32ntdll.c b/src/port/win32ntdll.c
index 10c33c6a01d..eb614077543 100644
--- a/src/port/win32ntdll.c
+++ b/src/port/win32ntdll.c
@@ -20,6 +20,8 @@
#include "port/win32ntdll.h"
RtlGetLastNtStatus_t pg_RtlGetLastNtStatus;
+RtlNtStatusToDosError_t pg_RtlNtStatusToDosError;
+NtFlushBuffersFileEx_t pg_NtFlushBuffersFileEx;
typedef struct NtDllRoutine
{
@@ -28,7 +30,9 @@ typedef struct NtDllRoutine
} NtDllRoutine;
static const NtDllRoutine routines[] = {
- {"RtlGetLastNtStatus", (pg_funcptr_t *) &pg_RtlGetLastNtStatus}
+ {"RtlGetLastNtStatus", (pg_funcptr_t *) &pg_RtlGetLastNtStatus},
+ {"RtlNtStatusToDosError", (pg_funcptr_t *) &pg_RtlNtStatusToDosError},
+ {"NtFlushBuffersFileEx", (pg_funcptr_t *) &pg_NtFlushBuffersFileEx}
};
static bool initialized;