#pragma once

#define STATUS_SUCCESS 0
#define STATUS_MORE_PROCESSING_REQUIRED 1
#define STATUS_INVALID_PARAMETER 2
#define STATUS_PENDING 3
#define STATUS_BUFFER_OVERFLOW 4
#define STATUS_SOME_NOT_MAPPED 5
#define STATUS_NOT_IMPLEMENTED 6
#define STATUS_INSUFFICIENT_RESOURCES 7
#define STATUS_INTERNAL_ERROR 8
#define STATUS_BUFFER_TOO_SMALL 9
#define STATUS_INVALID_VOLUME_LABEL 10
#define STATUS_MEDIA_WRITE_PROTECTED 11
#define STATUS_ACCESS_DENIED 12
#define STATUS_TOO_LATE 13
#define STATUS_UNRECOGNIZED_VOLUME 14
#define STATUS_NOT_FOUND 15
#define STATUS_INVALID_DEVICE_REQUEST 16
#define STATUS_DEVICE_NOT_READY 17
#define STATUS_WRONG_VOLUME 18
#define STATUS_NOT_SUPPORTED 19
#define STATUS_DISK_FULL 20
#define STATUS_PRIVILEGE_NOT_HELD 21
#define STATUS_CANNOT_DELETE 22
#define STATUS_CRC_ERROR 23
#define STATUS_UNEXPECTED_IO_ERROR 24
#define STATUS_OBJECT_NAME_COLLISION 25
#define STATUS_END_OF_FILE 26
#define STATUS_OBJECT_NAME_NOT_FOUND 27
#define STATUS_OBJECT_NAME_INVALID 28
#define STATUS_OBJECT_PATH_NOT_FOUND 29
#define STATUS_REPARSE 30
#define STATUS_USER_MAPPED_FILE 31
#define STATUS_DELETE_PENDING 32
#define STATUS_FILE_IS_A_DIRECTORY 33
#define STATUS_NOT_A_DIRECTORY 34
#define STATUS_SHARING_VIOLATION 35
#define STATUS_VERIFY_REQUIRED 36
#define STATUS_NO_MORE_FILES 37
#define STATUS_NO_SUCH_FILE 38
#define STATUS_CANT_WAIT 39
#define STATUS_DIRECTORY_NOT_EMPTY 40
#define STATUS_FILE_CLOSED 41
#define STATUS_INFO_LENGTH_MISMATCH 42
#define STATUS_TOO_MANY_LINKS 43
#define STATUS_NONEXISTENT_EA_ENTRY 44
#define STATUS_FILE_DELETED 45
#define STATUS_NOT_LOCKED 46
#define STATUS_INVALID_USER_BUFFER 47
#define STATUS_FILE_LOCK_CONFLICT 48
#define STATUS_IO_REPARSE_DATA_INVALID 49
#define STATUS_IO_REPARSE_TAG_INVALID 50
#define STATUS_UNSUCCESSFUL 51
#define STATUS_NO_MORE_ENTRIES 52
#define STATUS_NOT_A_REPARSE_POINT 53
#define STATUS_INVALID_BUFFER_SIZE 64

#define IO_ERR_INTERNAL_ERROR 1001