| 66 | } |
| 67 | |
| 68 | DWORD OpenFlagToCreation(int OpenFlag) { |
| 69 | if ((OpenFlag & (_O_TRUNC | _O_CREAT)) == (_O_TRUNC | _O_CREAT)) { |
| 70 | return CREATE_ALWAYS; |
| 71 | } |
| 72 | if ((OpenFlag & (_O_EXCL | _O_CREAT)) == (_O_EXCL | _O_CREAT)) { |
| 73 | return CREATE_NEW; |
| 74 | } |
| 75 | if (OpenFlag & _O_TRUNC) { |
| 76 | return TRUNCATE_EXISTING; |
| 77 | } |
| 78 | if (OpenFlag & _O_CREAT) { |
| 79 | return OPEN_ALWAYS; |
| 80 | } |
| 81 | return OPEN_EXISTING; |
| 82 | } |
| 83 | |
| 84 | int AllocateFile(std::unique_ptr<FILE>&& File) { |
| 85 | std::scoped_lock Lock {FileTableLock}; |