sys: FastIo: read/write implementation

This commit is contained in:
Bill Zissimopoulos
2022-03-20 20:31:54 +00:00
parent 00d4aba946
commit 20680fa5b5
7 changed files with 311 additions and 5 deletions

View File

@ -66,11 +66,17 @@ BOOLEAN FspFastIoCheckIfPossible(
PIO_STATUS_BLOCK IoStatus,
PDEVICE_OBJECT DeviceObject)
{
#if 1
ASSERT(FALSE);
return FALSE;
#else
FSP_ENTER_BOOL(PAGED_CODE());
Result = FALSE;
FSP_LEAVE_BOOL("FileObject=%p", FileObject);
#endif
}
VOID FspAcquireFileForNtCreateSection(
@ -299,9 +305,16 @@ VOID FspPropagateTopFlags(PIRP Irp, PIRP TopLevelIrp)
if ((PIRP)FSRTL_MAX_TOP_LEVEL_IRP_FLAG >= TopLevelIrp)
{
/*
* FAST I/O only acquires the Main lock.
* Other (non-IRP) top levels acquire the Full lock.
*/
DEBUGBREAK_EX(iorecu);
FspIrpSetTopFlags(Irp, FspFileNodeAcquireFull);
FspIrpSetTopFlags(Irp,
(PIRP)FSRTL_FAST_IO_TOP_LEVEL_IRP == TopLevelIrp ?
FspFileNodeAcquireMain :
FspFileNodeAcquireFull);
}
else if ((PIRP)MM_SYSTEM_RANGE_START <= TopLevelIrp && IO_TYPE_IRP == TopLevelIrp->Type)
{