IO_STACK_LOCATION *pIrpSp = IoGetCurrentIrpStackLocation( Irp);
PFILE_OBJECT pFileObject = pIrpSp->FileObject;
AFSFcb *pFcb = (AFSFcb *)pFileObject->FsContext;
+ AFSCcb *pCcb = (AFSCcb *)pFileObject->FsContext2;
BOOLEAN bSynchronousIo = IoIsOperationSynchronous(Irp);
VOID *pSystemBuffer = NULL;
BOOLEAN bPagingIo = BooleanFlagOn( Irp->Flags, IRP_PAGING_IO);
ulReadByteCount);
ntStatus = AFSRequestExtentsAsync( pFcb,
+ pCcb,
&StartingByte,
ulReadByteCount);
ulReadByteCount);
ntStatus = AFSRequestExtentsAsync( pFcb,
+ pCcb,
&StartingByte,
ulReadByteCount);
// The data is there now. Give back the extents now so the service
// has some in hand
//
- (VOID) AFSReleaseExtentsWithFlush( pFcb);
+ (VOID) AFSReleaseExtentsWithFlush( pFcb,
+ &pCcb->AuthGroup);
try_exit:
if( !bPagingIo && !bNonCachedIo)
{
- ntStatus = AFSRequestExtentsAsync( pFcb, &liStartingByte, ulByteCount);
+ ntStatus = AFSRequestExtentsAsync( pFcb, pCcb, &liStartingByte, ulByteCount);
if (!NT_SUCCESS(ntStatus))
{
pFcb->Specific.File.ExtentLength > 1500)
{
- AFSQueueFlushExtents( pFcb);
+ AFSQueueFlushExtents( pFcb,
+ &pCcb->AuthGroup);
}
#endif
ntStatus = AFSProcessRequest( AFS_REQUEST_TYPE_PIOCTL_READ,
AFS_REQUEST_FLAG_SYNCHRONOUS,
- &pFcb->AuthGroup,
+ &pCcb->AuthGroup,
NULL,
&stParentFID,
(void *)&stIORequestCB,
ntStatus = AFSProcessRequest( AFS_REQUEST_TYPE_PIPE_READ,
AFS_REQUEST_FLAG_SYNCHRONOUS,
- &pFcb->AuthGroup,
+ &pCcb->AuthGroup,
&pCcb->DirectoryCB->NameInformation.FileName,
NULL,
(void *)&stIoRequest,