mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
[NTOS:CC]
- Raise exceptions on failure in CcMapData if RAISE_FROM_CC_MAP_DATA is defined. This is how the function should behave, and should be enabled once all our file system drivers correctly handle this. CORE-9848 svn path=/trunk/; revision=71883
This commit is contained in:
parent
954b67bd37
commit
20b9815882
1 changed files with 20 additions and 1 deletions
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
|
//#define RAISE_FROM_CC_MAP_DATA
|
||||||
|
|
||||||
extern NPAGED_LOOKASIDE_LIST iBcbLookasideList;
|
extern NPAGED_LOOKASIDE_LIST iBcbLookasideList;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
@ -62,7 +64,11 @@ CcMapData (
|
||||||
{
|
{
|
||||||
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
||||||
FileObject, FileOffset, Length, Flags);
|
FileObject, FileOffset, Length, Flags);
|
||||||
|
#ifdef RAISE_FROM_CC_MAP_DATA
|
||||||
|
ExRaiseStatus(STATUS_INVALID_PARAMETER);
|
||||||
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
ROffset = ROUND_DOWN(ReadOffset, VACB_MAPPING_GRANULARITY);
|
ROffset = ROUND_DOWN(ReadOffset, VACB_MAPPING_GRANULARITY);
|
||||||
|
@ -75,7 +81,11 @@ CcMapData (
|
||||||
{
|
{
|
||||||
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
||||||
FileObject, FileOffset, Length, Flags);
|
FileObject, FileOffset, Length, Flags);
|
||||||
|
#ifdef RAISE_FROM_CC_MAP_DATA
|
||||||
|
ExRaiseStatus(Status);
|
||||||
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Valid)
|
if (!Valid)
|
||||||
|
@ -88,12 +98,17 @@ CcMapData (
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NT_SUCCESS(CcReadVirtualAddress(Vacb)))
|
Status = CcReadVirtualAddress(Vacb);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE, FALSE);
|
CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE, FALSE);
|
||||||
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
||||||
FileObject, FileOffset, Length, Flags);
|
FileObject, FileOffset, Length, Flags);
|
||||||
|
#ifdef RAISE_FROM_CC_MAP_DATA
|
||||||
|
ExRaiseStatus(Status);
|
||||||
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +119,11 @@ CcMapData (
|
||||||
CcRosReleaseVacb(SharedCacheMap, Vacb, TRUE, FALSE, FALSE);
|
CcRosReleaseVacb(SharedCacheMap, Vacb, TRUE, FALSE, FALSE);
|
||||||
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n",
|
||||||
FileObject, FileOffset, Length, Flags);
|
FileObject, FileOffset, Length, Flags);
|
||||||
|
#ifdef RAISE_FROM_CC_MAP_DATA
|
||||||
|
ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
RtlZeroMemory(iBcb, sizeof(*iBcb));
|
RtlZeroMemory(iBcb, sizeof(*iBcb));
|
||||||
|
|
Loading…
Reference in a new issue