30 DWORD dwDesiredAccess,
33 DWORD dwCreationDisposition,
34 DWORD dwFlagsAndAttributes,
49 dwCreationDisposition,
61 DWORD dwDesiredAccess,
64 DWORD dwCreationDisposition,
65 DWORD dwFlagsAndAttributes,
88 switch (dwCreationDisposition)
117 if (pszConsoleFileName)
150 dwDesiredAccess |=
DELETE;
188 WARN(
"Invalid path\n");
193 TRACE(
"NtPathU \'%wZ\'\n", &NtPathU);
195 TrailingBackslash =
FALSE;
199 TrailingBackslash =
TRUE;
202 if (hTemplateFile !=
NULL)
282 if (lpSecurityAttributes)
301 dwCreationDisposition,
383 TRACE(
"OpenFile('%s', lpReOpenBuff %p, uStyle %x)\n",
lpFileName, lpReOpenBuff, uStyle);
385 if (lpReOpenBuff ==
NULL)
440 switch (uStyle & 0x70)
#define STATUS_OBJECT_NAME_COLLISION
#define ERROR_INVALID_PARAMETER
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
BOOL WINAPI OpenDataFile(HANDLE hFile, DWORD dwUnused)
HANDLE WINAPI ReOpenFile(IN HANDLE hOriginalFile, IN DWORD dwDesiredAccess, IN DWORD dwShareMode, IN DWORD dwFlags)
#define ERROR_FILE_EXISTS
#define FILE_SEQUENTIAL_ONLY
#define STATUS_FILE_IS_A_DIRECTORY
UINT WINAPI GetDriveTypeA(IN LPCSTR lpRootPathName)
#define OBJ_CASE_INSENSITIVE
#define FILE_FLAG_POSIX_SEMANTICS
#define FILE_ATTRIBUTE_VALID_FLAGS
_In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PVOID EaBuffer
NTSYSAPI NTSTATUS NTAPI NtQueryInformationFile(IN HANDLE hFile, OUT PIO_STATUS_BLOCK pIoStatusBlock, OUT PVOID FileInformationBuffer, IN ULONG FileInformationBufferLength, IN FILE_INFORMATION_CLASS FileInfoClass)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define FILE_OPEN_NO_RECALL
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
#define FILE_OPEN_REMOTE_INSTANCE
HANDLE WINAPI CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
#define OF_SHARE_DENY_WRITE
#define STATUS_BUFFER_TOO_SMALL
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
DWORD WINAPI GetFullPathNameA(IN LPCSTR lpFileName, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart)
struct _OFSTRUCT OFSTRUCT
#define FILE_NO_INTERMEDIATE_BUFFERING
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define ERROR_ACCESS_DENIED
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
HANDLE WINAPI CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
LPCWSTR IntCheckForConsoleFileName(IN LPCWSTR pszName, IN DWORD dwDesiredAccess)
#define FILE_WRITE_THROUGH
#define DEBUG_CHANNEL(args)
#define FILE_OVERWRITE_IF
DWORD BaseSetLastNTError(IN NTSTATUS Status)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
#define ERROR_FILE_NOT_FOUND
struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
#define OF_SHARE_DENY_READ
#define FILE_ATTRIBUTE_DIRECTORY
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
HFILE WINAPI OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle)
#define FILE_FLAG_WRITE_THROUGH
#define FILE_DELETE_ON_CLOSE
NTSYSAPI NTSTATUS NTAPI NtOpenFile(OUT PHANDLE phFile, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG ShareMode, IN ULONG OpenMode)
_Must_inspect_result_ _In_ ULONG Flags
NTSTATUS NTAPI NtCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength)
IN PVCB IN PDIRENT OUT PULONG EaLength
#define NT_SUCCESS(StatCode)
#define FILE_FLAG_NO_BUFFERING
#define FILE_FLAG_DELETE_ON_CLOSE
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define INVALID_FILE_ATTRIBUTES
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
PWCHAR FilenameA2W(LPCSTR NameA, BOOL alloc)
#define FILE_READ_ATTRIBUTES
#define FILE_ATTRIBUTE_NORMAL
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define FILE_NON_DIRECTORY_FILE
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
struct _FileName FileName
LPVOID lpSecurityDescriptor
#define FILE_FLAG_SEQUENTIAL_SCAN
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
#define FILE_OPEN_FOR_BACKUP_INTENT
#define FILE_FLAG_OPEN_NO_RECALL
static OUT PIO_STATUS_BLOCK IoStatusBlock
#define FILE_RANDOM_ACCESS
#define FILE_SYNCHRONOUS_IO_NONALERT
#define FILE_FLAG_BACKUP_SEMANTICS
HANDLE WINAPI OpenConsoleW(LPCWSTR wsName, DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwShareMode)
#define FILE_FLAG_OPEN_REPARSE_POINT
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define InitializeObjectAttributes(p, n, a, r, s)
CHAR szPathName[OFS_MAXPATHNAME]
#define ERROR_PATH_NOT_FOUND
#define TRUNCATE_EXISTING
#define ERROR_ALREADY_EXISTS
NTSTATUS NTAPI NtQueryEaFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN ReturnSingleEntry, IN PVOID EaList OPTIONAL, IN ULONG EaListLength, IN PULONG EaIndex OPTIONAL, IN BOOLEAN RestartScan)
#define OF_SHARE_DENY_NONE
#define FILE_FLAG_OVERLAPPED
#define FILE_OPEN_REPARSE_POINT
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
#define OF_SHARE_EXCLUSIVE
#define FILE_FLAG_RANDOM_ACCESS