Fixed timeout
This commit is contained in:
@@ -749,7 +749,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanReadFile(filePath)));
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
|
||||
if (openFileInfo->Dummy)
|
||||
if (openFileInfo && openFileInfo->Dummy)
|
||||
{
|
||||
// TODO taking too long
|
||||
if (!AddFileToCache(*openFileInfo, dokanFileInfo))
|
||||
@@ -758,7 +758,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
HANDLE tempHandle = openFileInfo->FileHandle;
|
||||
HANDLE tempHandle = openFileInfo ? openFileInfo->FileHandle : 0;
|
||||
BOOL opened = FALSE;
|
||||
if (!tempHandle || (tempHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
@@ -808,7 +808,7 @@ private:
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
|
||||
BOOL opened = FALSE;
|
||||
HANDLE tempHandle = openFileInfo->FileHandle;
|
||||
HANDLE tempHandle = openFileInfo ? openFileInfo->FileHandle : 0;
|
||||
if (!tempHandle || (tempHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
tempHandle = ::CreateFile(&filePath[0], GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr);
|
||||
@@ -888,7 +888,8 @@ private:
|
||||
|
||||
if (::WriteFile(tempHandle, buffer, bytesToWrite, bytesWritten, nullptr))
|
||||
{
|
||||
openFileInfo->Changed = true;
|
||||
if (openFileInfo)
|
||||
openFileInfo->Changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -898,9 +899,11 @@ private:
|
||||
return DokanNtStatusFromWin32(error);
|
||||
}
|
||||
|
||||
// close the file when it is reopene bxkjuoqoa'qq d
|
||||
if (opened)
|
||||
CloseHandle(tempHandle);
|
||||
if (opened)
|
||||
{
|
||||
// TODO HandleSiaFileClose
|
||||
CloseHandle(tempHandle);
|
||||
}
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -914,7 +917,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetEndOfFile(filePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
ret = STATUS_INVALID_HANDLE;
|
||||
}
|
||||
@@ -994,7 +997,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanFlushFileBuffers(filePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1065,7 +1068,7 @@ private:
|
||||
{
|
||||
ret = STATUS_ACCESS_DENIED;
|
||||
}
|
||||
else if (openFileInfo->FileHandle && (openFileInfo->FileHandle != INVALID_HANDLE_VALUE))
|
||||
else if (openFileInfo && openFileInfo->FileHandle && (openFileInfo->FileHandle != INVALID_HANDLE_VALUE))
|
||||
{
|
||||
FILE_DISPOSITION_INFO fdi;
|
||||
fdi.DeleteFile = dokanFileInfo->DeleteOnClose;
|
||||
@@ -1088,7 +1091,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanMoveFileW(filePath, newFilePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
ret = STATUS_INVALID_HANDLE;
|
||||
}
|
||||
@@ -1204,7 +1207,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetFileSecurityW(filePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
return STATUS_INVALID_HANDLE;
|
||||
}
|
||||
@@ -1226,7 +1229,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetFileTime(filePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
return STATUS_INVALID_HANDLE;
|
||||
}
|
||||
@@ -1248,7 +1251,7 @@ private:
|
||||
CEventSystem::EventSystem.NotifyEvent(CreateSystemEvent(DokanSetAllocationSize(filePath)));
|
||||
|
||||
auto openFileInfo = reinterpret_cast<OpenFileInfo*>(dokanFileInfo->Context);
|
||||
if (!openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
if (!openFileInfo || !openFileInfo->FileHandle || (openFileInfo->FileHandle == INVALID_HANDLE_VALUE))
|
||||
{
|
||||
ret = STATUS_INVALID_HANDLE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user