aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/os_win.c17
-rw-r--r--src/test1.c5
-rw-r--r--src/test_quota.c4
3 files changed, 26 insertions, 0 deletions
diff --git a/src/os_win.c b/src/os_win.c
index 82ec15f3b..a02b0c535 100644
--- a/src/os_win.c
+++ b/src/os_win.c
@@ -4093,6 +4093,22 @@ static int winOpenFile(
/* TODO: platforms.
** TODO: retry-on-ioerr.
*/
+#if SQLITE_OS_WINRT
+ {
+ CREATEFILE2_EXTENDED_PARAMETERS extendedParameters;
+ memset(&extendedParameters, 0, sizeof(extendedParameters));
+ extendedParameters.dwSize = sizeof(extendedParameters);
+ extendedParameters.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
+ extendedParameters.dwFileFlags = FILE_FLAG_OVERLAPPED;
+ extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS;
+ h = osCreateFile2((LPCWSTR)zConverted,
+ (GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)),/* dwDesiredAccess */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */
+ OPEN_ALWAYS, /* dwCreationDisposition */
+ &extendedParameters
+ );
+ }
+#else
h = osCreateFileW((LPCWSTR)zConverted, /* lpFileName */
(GENERIC_READ | (bReadonly ? 0 : GENERIC_WRITE)), /* dwDesiredAccess */
FILE_SHARE_READ | FILE_SHARE_WRITE, /* dwShareMode */
@@ -4101,6 +4117,7 @@ static int winOpenFile(
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL
);
+#endif
if( h==INVALID_HANDLE_VALUE ){
if( bReadonly==0 ){
bReadonly = 1;
diff --git a/src/test1.c b/src/test1.c
index cf5d484e9..613e8ca13 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -7979,6 +7979,10 @@ static int SQLITE_TCLAPI win32_file_lock(
int objc,
Tcl_Obj *CONST objv[]
){
+#ifdef SQLITE_OS_WINRT
+ Tcl_AppendResult(interp, "unsupported test command", (char*)0);
+ return TCL_ERROR;
+#else
static struct win32FileLocker x = { "win32_file_lock", 0, 0, 0, 0, 0 };
const char *zFilename;
char zBuf[200];
@@ -8029,6 +8033,7 @@ static int SQLITE_TCLAPI win32_file_lock(
}
CloseHandle(ev);
return TCL_OK;
+#endif /* !SQLITE_OS_WINRT */
}
#endif
diff --git a/src/test_quota.c b/src/test_quota.c
index 1bfc5ce11..62d808a22 100644
--- a/src/test_quota.c
+++ b/src/test_quota.c
@@ -389,7 +389,11 @@ static char *quota_utf8_to_mbcs(const char *zUtf8){
zTmpWide = (LPWSTR)sqlite3_malloc( (nWide+1)*sizeof(zTmpWide[0]) );
if( zTmpWide==0 ) return 0;
MultiByteToWideChar(CP_UTF8, 0, zUtf8, -1, zTmpWide, nWide);
+#ifdef SQLITE_OS_WINRT
+ codepage = CP_ACP;
+#else
codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
+#endif
nMbcs = WideCharToMultiByte(codepage, 0, zTmpWide, nWide, 0, 0, 0, 0);
zMbcs = nMbcs ? (char*)sqlite3_malloc( nMbcs+1 ) : 0;
if( zMbcs ){