/*++ Copyright (c) 1999 Microsoft Corporation Module Name: spwin.h Abstract: Win32 portability layer file i/o Get/SetLastError slight wrappers around such for porting windows\winstate\...\cablib.c Author: Jay Krell (a-JayK) November 2000 Revision History: --*/ #pragma once #include "windows.h" #define PATHS_ALWAYS_NATIVE 1 VOID SpSetLastWin32ErrorAndNtStatusFromNtStatus( NTSTATUS Status ); NTSTATUS SpGetLastNtStatus( VOID ); NTSTATUS SpConvertWin32FileOpenOrCreateToNtFileOpenOrCreate( ULONG Win32OpenOrCreate, ULONG* NtOpenOrCreate ); NTSTATUS SpConvertWin32FileAccessToNtFileAccess( ULONG Win32FileAccess, ULONG* NtFileAccess ); NTSTATUS SpConvertWin32FileShareToNtFileShare( ULONG Win32FileShare, ULONG* NtFileShare ); NTSTATUS SpGetLastNtStatus( VOID ); ULONG WINAPI SpGetLastWin32Error( VOID ); VOID WINAPI SpSetLastWin32Error( ULONG Error ); HANDLE SpNtCreateFileW( PCUNICODE_STRING ConstantPath, IN ULONG FileAccess, IN ULONG FileShare, IN LPSECURITY_ATTRIBUTES SecurityAttributes, IN ULONG Win32FileOpenOrCreate, IN ULONG FlagsAndAttributes, IN HANDLE TemplateFile ); HANDLE WINAPI SpWin32CreateFileW( IN PCWSTR FileName, IN ULONG FileAccess, IN ULONG FileShare, IN LPSECURITY_ATTRIBUTES SecurityAttributes, IN ULONG FileOpenOrCreate, IN ULONG FlagsAndAttributes, IN HANDLE TemplateFile ); HANDLE WINAPI SpWin32CreateFileA( IN PCSTR FileName, IN ULONG FileAccess, IN ULONG FileShare, IN LPSECURITY_ATTRIBUTES SecurityAttributes, IN ULONG FileOpenOrCreate, IN ULONG dwFlagsAndAttributes, IN HANDLE TemplateFile ); BOOL WINAPI SpWin32ReadFile( HANDLE hFile, PVOID lpBuffer, ULONG nNumberOfBytesToRead, ULONG* lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ); BOOL WINAPI SpWin32WriteFile( HANDLE hFile, CONST VOID* lpBuffer, ULONG nNumberOfBytesToWrite, ULONG* lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); ULONG WINAPI SpSetFilePointer( HANDLE hFile, LONG lDistanceToMove, LONG* lpDistanceToMoveHigh, ULONG dwMoveMethod ); BOOL WINAPI SpWin32DeleteFileA( PCSTR FileName ); BOOL APIENTRY SpFileTimeToDosDateTime( CONST FILETIME *lpFileTime, LPWORD lpFatDate, LPWORD lpFatTime ); BOOL APIENTRY SpDosDateTimeToFileTime( WORD wFatDate, WORD wFatTime, LPFILETIME lpFileTime ); BOOL WINAPI SpFileTimeToLocalFileTime( CONST FILETIME *lpFileTime, LPFILETIME lpLocalFileTime ); BOOL WINAPI SpLocalFileTimeToFileTime( CONST FILETIME *lpLocalFileTime, LPFILETIME lpFileTime ); BOOL WINAPI SpSetFileTime( HANDLE hFile, CONST FILETIME *lpCreationTime, CONST FILETIME *lpLastAccessTime, CONST FILETIME *lpLastWriteTime ); BOOL APIENTRY SpSetFileAttributesA( PCSTR lpFileName, DWORD dwFileAttributes ); BOOL APIENTRY SpSetFileAttributesW( PCWSTR lpFileName, DWORD dwFileAttributes ); UINT WINAPI SpWin32GetTempFileNameW( PCWSTR TempDirectory, PCWSTR Prefix, UINT IgnoredNumber, PWSTR File ); BOOL APIENTRY SpGetFileAttributesExA( PCSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, PVOID lpFileInformation ); BOOL APIENTRY SpGetFileAttributesExW( LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ); WINBASEAPI BOOL WINAPI SpWin32CreateDirectoryW( IN PCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes );