私は、古いものをWP8からC++エクステンションでUniversal Windows Platformに移行しようとしています。UWP CreateFile2 ERROR_ACCESS_DENIED on "NUL"
HANDLE CreateFile(
_In_ LPCWSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_ DWORD dwFlagsAndAttributes,
_In_opt_ HANDLE hTemplateFile
)
{
CREATEFILE2_EXTENDED_PARAMETERS extendedParameters;
extendedParameters.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
extendedParameters.dwFileAttributes = dwFlagsAndAttributes & 0x0003FFF7;
extendedParameters.dwFileFlags = dwFlagsAndAttributes & 0xFF3C0000;
extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS;
extendedParameters.lpSecurityAttributes = lpSecurityAttributes;
extendedParameters.hTemplateFile = hTemplateFile;
return CreateFile2(lpFileName, dwDesiredAccess, dwShareMode,
dwCreationDisposition, &extendedParameters);
}
このコードは、上の作品:私はこのコードを使用しようとしているときに問題は時間が-1で、そして最後のエラーは5(ERROR_ACCESS_DENIED) のCreateFileは、そのように再定義されている
HANDLE h = CreateFile(L"NUL", 0, 0, NULL, OPEN_ALWAYS, 0, NULL);
を開始しますWindows Phone 8で動作しますが、Windows 10では動作しません。したがって、問題は - 私は間違っています。
ファイルを排他モードで開くことを要求しています(* dwShareMode *は0です)。これは意図的ですか?それはまた、より厳格ではない共有モードでも失敗しますか? – IInspectable
これは、FILE_SHARE_WRITE、FILE_SHARE_READ、またはFILE_SHARE_WRITEを書いても同じことです。 FILE_SHARE_READ。私は、問題はアプリケーションの許可の中に隠されていると思いますが、私は全く解決策を見いだせませんでした。 – Hramovnik
デバイスアクセスは、[the appx manifest](https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/appxmanifestschema/element-devicecapability)で要求された機能と強く比較されます。 MS-DOSのレガシーデバイスをカバーするかどうかは疑問だが、それは良いことだ。 –