span {
font-family: 'Courier New';
font-size: 10pt;
color: #000000;
}
.sc0 {
}
.sc2 {
font-family: 'Comic Sans MS';
color: #008000;
}
.sc4 {
color: #FF8000;
}
.sc5 {
font-weight: bold;
color: #0000FF;
}
.sc6 {
color: #808080;
}
.sc10 {
font-weight: bold;
color: #000080;
}
.sc11 {
}
//
// If are paging io, then we do not want
// to write beyond end of file. If the base is beyond Eof, we will just
// Noop the call. If the transfer starts before Eof, but extends
// beyond, we will truncate the transfer to the last sector
// boundary.
//
//
// Just in case this is paging io, limit write to file size.
// Otherwise, in case of write through, since Mm rounds up
// to a page, we might try to acquire the resource exclusive
// when our top level guy only acquired it shared. Thus, =><=.
//
if ( PagingIo ) {
if (StartingVbo >= FileSize) {
DebugTrace( 0, Dbg, “PagingIo started beyond EOF.\n”, 0 );
Irp->IoStatus.Information = 0;
try_return( Status = STATUS_SUCCESS );
}
if (ByteCount > FileSize - StartingVbo) {
DebugTrace( 0, Dbg, “PagingIo extending beyond EOF.\n”, 0 );
ByteCount = FileSize - StartingVbo;
}
}