IN PIRP Irp)
{
+ UNREFERENCED_PARAMETER(LibDeviceObject);
NTSTATUS ntStatus = STATUS_SUCCESS;
__try
{
- ntStatus = AFSCommonWrite( AFSRDRDeviceObject, Irp, NULL);
+ ntStatus = AFSCommonWrite( AFSRDRDeviceObject, Irp, NULL, FALSE);
}
__except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) )
{
NTSTATUS
AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
- IN HANDLE OnBehalfOf)
+ IN HANDLE OnBehalfOf,
+ IN BOOLEAN bRetry)
{
NTSTATUS ntStatus = STATUS_SUCCESS;
BOOLEAN bCompleteIrp = TRUE;
BOOLEAN bLockOK;
HANDLE hCallingUser = OnBehalfOf;
- ULONG ulExtensionLength = 0;
- BOOLEAN bRetry = FALSE;
ULONGLONG ullProcessId = (ULONGLONG)PsGetCurrentProcessId();
pIrpSp = IoGetCurrentIrpStackLocation( Irp);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite Attempted write (%08lX) when pFcb == NULL\n",
+ "AFSCommonWrite Attempted write (%p) when pFcb == NULL\n",
Irp);
try_return( ntStatus = STATUS_INVALID_DEVICE_REQUEST);
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_WARNING,
- "AFSCommonWrite (%08lX) Open request after shutdown\n",
+ "AFSCommonWrite (%p) Open request after shutdown\n",
Irp);
try_return( ntStatus = STATUS_TOO_LATE);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite Attempted write (%08lX) on an invalid node type %08lX\n",
+ "AFSCommonWrite Attempted write (%p) on an invalid node type %08lX\n",
Irp,
pFcb->Header.NodeTypeCode);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Processing file (PIOCTL) Offset %I64X Length %08lX Irp Flags %08lX\n",
+ "AFSCommonWrite (%p) Processing file (PIOCTL) Offset %I64X Length %08lX Irp Flags %08lX\n",
Irp,
liStartingByte.QuadPart,
ulByteCount,
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Processing file (SHARE) Offset %I64X Length %08lX Irp Flags %08lX\n",
+ "AFSCommonWrite (%p) Processing file (SHARE) Offset %I64X Length %08lX Irp Flags %08lX\n",
Irp,
liStartingByte.QuadPart,
ulByteCount,
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Request failed due to AFS cache closed\n",
+ "AFSCommonWrite (%p) Request failed due to AFS cache closed\n",
Irp);
try_return( ntStatus = STATUS_TOO_LATE );
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Request failed due to read only volume\n",
+ "AFSCommonWrite (%p) Request failed due to read only volume\n",
Irp);
try_return( ntStatus = STATUS_ACCESS_DENIED);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Request completed due to zero length\n",
+ "AFSCommonWrite (%p) Request completed due to zero length\n",
Irp);
try_return( ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Failing request due to INVALID fcb\n",
+ "AFSCommonWrite (%p) Failing request due to INVALID fcb\n",
Irp);
Irp->IoStatus.Information = 0;
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Request failed due to file deleted\n",
+ "AFSCommonWrite (%p) Request failed due to file deleted\n",
Irp);
try_return( ntStatus = STATUS_FILE_DELETED);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) IRP_MN_COMPLETE being processed\n",
+ "AFSCommonWrite (%p) IRP_MN_COMPLETE being processed\n",
Irp);
CcMdlWriteComplete(pFileObject, &pIrpSp->Parameters.Write.ByteOffset, Irp->MdlAddress);
bNonCachedIo = FALSE;
}
- if ( !bNonCachedIo) {
+ if ( !bNonCachedIo && !bPagingIo)
+ {
- if( !bPagingIo)
+ if( pFileObject->PrivateCacheMap == NULL)
{
- if( pFileObject->PrivateCacheMap == NULL)
+ AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonWrite Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
+ &pNPFcb->SectionObjectResource,
+ PsGetCurrentThread());
+
+ AFSAcquireExcl( &pNPFcb->SectionObjectResource,
+ TRUE);
+
+ bReleaseSectionObject = TRUE;
+
+ __try
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb SectionObject lock %08lX EXCL %08lX\n",
- &pNPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ "AFSCommonWrite Initialize caching on Fcb %p FileObject %p\n",
+ pFcb,
+ pFileObject);
- AFSAcquireExcl( &pNPFcb->SectionObjectResource,
- TRUE);
+ CcInitializeCacheMap( pFileObject,
+ (PCC_FILE_SIZES)&pFcb->Header.AllocationSize,
+ FALSE,
+ AFSLibCacheManagerCallbacks,
+ pFcb);
- bReleaseSectionObject = TRUE;
+ CcSetReadAheadGranularity( pFileObject,
+ pDeviceExt->Specific.RDR.MaximumRPCLength);
- __try
- {
+ CcSetDirtyPageThreshold( pFileObject,
+ AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength / 4096);
+ }
+ __except( EXCEPTION_EXECUTE_HANDLER)
+ {
- AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Initialize caching on Fcb %08lX FileObject %08lX\n",
- pFcb,
- pFileObject);
+ ntStatus = GetExceptionCode();
- CcInitializeCacheMap( pFileObject,
- (PCC_FILE_SIZES)&pFcb->Header.AllocationSize,
- FALSE,
- AFSLibCacheManagerCallbacks,
- pFcb);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSCommonWrite (%p) Exception thrown while initializing cache map Status %08lX\n",
+ Irp,
+ ntStatus);
+ }
- CcSetReadAheadGranularity( pFileObject,
- pDeviceExt->Specific.RDR.MaximumRPCLength);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonWrite Releasing Fcb SectionObject lock %p EXCL %08lX\n",
+ &pNPFcb->SectionObjectResource,
+ PsGetCurrentThread());
- CcSetDirtyPageThreshold( pFileObject,
- AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength);
- }
- __except( EXCEPTION_EXECUTE_HANDLER)
- {
+ AFSReleaseResource( &pNPFcb->SectionObjectResource);
- ntStatus = GetExceptionCode();
+ bReleaseSectionObject = FALSE;
- AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
- AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Exception thrown while initializing cache map Status %08lX\n",
- Irp,
- ntStatus);
- }
+ if( !NT_SUCCESS( ntStatus))
+ {
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Releasing Fcb SectionObject lock %08lX EXCL %08lX\n",
- &pNPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ try_return( ntStatus);
+ }
+ }
- AFSReleaseResource( &pNPFcb->SectionObjectResource);
+ if (!CcCanIWrite( pFileObject,
+ ulByteCount,
+ FALSE,
+ bRetry))
+ {
- bReleaseSectionObject = FALSE;
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_WARNING,
+ "AFSCommonWrite (FO: %p) CcCanIWrite says No room for Offset %0I64X Length %08lX bytes! Deferring%s\n",
+ pFileObject,
+ liStartingByte.QuadPart,
+ ulByteCount,
+ bRetry ? " RETRY" : "");
+ ntStatus = AFSDeferWrite( DeviceObject, pFileObject, hCallingUser, Irp, ulByteCount, bRetry);
- if( !NT_SUCCESS( ntStatus))
- {
+ if ( STATUS_PENDING == ntStatus)
+ {
- try_return( ntStatus);
- }
+ bCompleteIrp = FALSE;
}
- }
+ else
+ {
- while (!CcCanIWrite( pFileObject,
- ulByteCount,
- FALSE,
- bRetry))
- {
- static const LONGLONG llWriteDelay = (LONGLONG)-100000;
- bRetry = TRUE;
- KeDelayExecutionThread(KernelMode, FALSE, (PLARGE_INTEGER)&llWriteDelay);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSCommonWrite (FO: %p) AFSDeferWrite failure Status %08lX\n",
+ pFileObject,
+ ntStatus);
+ }
+
+ try_return( ntStatus);
}
}
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb PagingIo lock %08lX SHARED %08lX\n",
+ "AFSCommonWrite Acquiring Fcb PagingIo lock %p SHARED %08lX\n",
&pNPFcb->PagingResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb lock %08lX EXCL %08lX\n",
+ "AFSCommonWrite Acquiring Fcb lock %p EXCL %08lX\n",
&pNPFcb->Resource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb SectionObject lock %08lX EXCL %08lX\n",
+ "AFSCommonWrite Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
&pNPFcb->SectionObjectResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb lock %08lX SHARED %08lX\n",
+ "AFSCommonWrite Acquiring Fcb lock %p SHARED %08lX\n",
&pNPFcb->Resource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb SectionObject lock %08lX SHARED %08lX\n",
+ "AFSCommonWrite Acquiring Fcb SectionObject lock %p SHARED %08lX\n",
&pNPFcb->SectionObjectResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Request failed due to lock conflict\n",
+ "AFSCommonWrite (%p) Request failed due to lock conflict\n",
Irp);
try_return( ntStatus = STATUS_FILE_LOCK_CONFLICT);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%08lX) Failed extending write request Status %08lX\n",
+ "AFSCommonWrite (%p) Failed extending write request Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Processing CACHED request Offset %I64X Len %08lX\n",
+ "AFSCommonWrite (%p) Processing CACHED request Offset %0I64X Len %08lX%s\n",
Irp,
liStartingByte.QuadPart,
- ulByteCount);
+ ulByteCount,
+ bRetry ? " RETRY" : "");
ntStatus = AFSCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount, TRUE);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Processing NON-CACHED request Offset %I64X Len %08lX\n",
+ "AFSCommonWrite (%p) Processing NON-CACHED request Offset %0I64X Len %08lX%s\n",
Irp,
liStartingByte.QuadPart,
- ulByteCount);
+ ulByteCount,
+ bRetry ? " RETRY" : "");
ntStatus = AFSNonCachedWrite( DeviceObject, Irp, liStartingByte, ulByteCount);
}
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite (%08lX) Process complete Status %08lX\n",
+ "AFSCommonWrite (%p) Process complete Status %08lX\n",
Irp,
ntStatus);
IN PIRP Irp)
{
+ UNREFERENCED_PARAMETER(DeviceObject);
NTSTATUS ntStatus = STATUS_SUCCESS;
AFSPIOCtlIORequestCB stIORequestCB;
PIO_STACK_LOCATION pIrpSp = IoGetCurrentIrpStackLocation( Irp);
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSIOCtlWrite Acquiring Fcb lock %08lX SHARED %08lX\n",
+ "AFSIOCtlWrite Acquiring Fcb lock %p SHARED %08lX\n",
&pFcb->NPFcb->Resource,
PsGetCurrentThread());
RtlZeroMemory( &stParentFID,
sizeof( AFSFileID));
- if( pFcb->ObjectInformation->ParentObjectInformation != NULL)
+ if( BooleanFlagOn( pFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_PARENT_FID))
{
//
// The parent directory FID of the node
//
- stParentFID = pFcb->ObjectInformation->ParentObjectInformation->FileId;
+ stParentFID = pFcb->ObjectInformation->ParentFileId;
}
//
&pCcb->AuthGroup,
NULL,
&stParentFID,
+ NULL,
+ 0,
(void *)&stIORequestCB,
sizeof( AFSPIOCtlIORequestCB),
&stIOResultCB,
BOOLEAN bPagingIo = BooleanFlagOn( Irp->Flags, IRP_PAGING_IO);
BOOLEAN bLocked = FALSE;
BOOLEAN bCompleteIrp = TRUE;
- BOOLEAN bExtentsMapped = FALSE;
AFSGatherIo *pGatherIo = NULL;
AFSIoRun *pIoRuns = NULL;
AFSIoRun stIoRuns[AFS_MAX_STACK_IO_RUNS];
AFSCcb *pCcb = (AFSCcb *)pFileObject->FsContext2;
BOOLEAN bSynchronousFo = BooleanFlagOn( pFileObject->Flags, FO_SYNCHRONOUS_IO);
AFSDeviceExt *pDevExt = (AFSDeviceExt *)DeviceObject->DeviceExtension;
- ULONG ulRequestCount = 0;
LARGE_INTEGER liCurrentTime, liLastRequestTime;
AFSDeviceExt *pControlDevExt = (AFSDeviceExt *)AFSControlDeviceObject->DeviceExtension;
PFILE_OBJECT pCacheFileObject = NULL;
{
Irp->IoStatus.Information = 0;
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSNonCachedWrite (FO: %p) StartingByte %08lX:%08lX Length %08lX\n",
+ pFileObject,
+ StartingByte.HighPart,
+ StartingByte.LowPart,
+ ByteCount);
+
if (ByteCount > pDevExt->Specific.RDR.MaxIo.QuadPart)
{
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Request %08lX Actual %08lX larger than MaxIO %I64X\n",
+ "AFSNonCachedWrite (%p) Request %08lX Actual %08lX larger than MaxIO %I64X\n",
Irp,
ByteCount,
pIrpSp->Parameters.Write.Length,
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to map system buffer\n",
+ "AFSNonCachedWrite (%p) Failed to map system buffer\n",
Irp);
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to request extents Status %08lX\n",
+ "AFSNonCachedWrite (%p) Failed to request extents Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Acquiring Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Acquiring Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Releasing(1) Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Releasing(1) Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to request extents Status %08lX\n",
+ "AFSNonCachedWrite (%p) Failed to request extents Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to retrieve mapped extents Status %08lX\n",
+ "AFSNonCachedWrite (%p) Failed to retrieve mapped extents Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite (%08lX) Successfully retrieved map extents count %08lX run count %08lX\n",
+ "AFSNonCachedWrite (%p) Successfully retrieved map extents count %d run count %d\n",
Irp,
extentsCount,
runCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to process extent run for non-persistent cache Status %08lX\n",
+ "AFSNonCachedWrite (%p) Failed to process extent run for non-persistent cache Status %08lX\n",
Irp,
ntStatus);
}
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to allocate IO run block\n",
+ "AFSNonCachedWrite (%p) Failed to allocate IO run block\n",
Irp);
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES );
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to initialize IO run block Status %08lX\n",
+ "AFSNonCachedWrite (%p) Failed to initialize IO run block Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Releasing(2) Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Releasing(2) Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSNonCachedWrite (%08lX) Failed to allocate IO gather block\n",
+ "AFSNonCachedWrite (%p) Failed to allocate IO gather block\n",
Irp);
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Acquiring(1) Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Acquiring(1) Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite (%08lX) AFSStartIos completed Status %08lX\n",
+ "AFSNonCachedWrite (%p) AFSStartIos completed Status %08lX\n",
Irp,
ntStatus);
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Acquiring(2) Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Acquiring(2) Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Acquiring(3) Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Acquiring(3) Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
Irp->IoStatus.Information > 0)
{
- if ( !bLocked)
- {
+ if ( !bLocked)
+ {
- AFSAcquireShared( &pFcb->NPFcb->Specific.File.ExtentsResource,
- TRUE);
- bLocked = TRUE;
- }
+ AFSAcquireShared( &pFcb->NPFcb->Specific.File.ExtentsResource,
+ TRUE);
+ bLocked = TRUE;
+ }
//
// Since this is dirty we can mark the extents dirty now.
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite (%08lX) Completed request Status %08lX\n",
- Irp,
+ "AFSNonCachedWrite (FO: %p) StartingByte %08lX:%08lX Length %08lX Status %08lX\n",
+ pFileObject,
+ StartingByte.HighPart,
+ StartingByte.LowPart,
+ ByteCount,
ntStatus);
if (NT_SUCCESS(ntStatus) &&
AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Releasing Fcb extents lock %08lX SHARED %08lX\n",
+ "AFSNonCachedWrite Releasing Fcb extents lock %p SHARED %08lX\n",
&pFcb->NPFcb->Specific.File.ExtentsResource,
PsGetCurrentThread());
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSNonCachedWrite Completing Irp %08lX Status %08lX Info %08lX\n",
+ "AFSNonCachedWrite Completing Irp %p Status %08lX Info %08lX\n",
Irp,
ntStatus,
Irp->IoStatus.Information);
IN ULONG ByteCount,
IN BOOLEAN ForceFlush)
{
+ UNREFERENCED_PARAMETER(DeviceObject);
PVOID pSystemBuffer = NULL;
NTSTATUS ntStatus = STATUS_SUCCESS;
IO_STATUS_BLOCK iosbFlush;
IO_STACK_LOCATION *pIrpSp = IoGetCurrentIrpStackLocation( Irp);
PFILE_OBJECT pFileObject = pIrpSp->FileObject;
AFSFcb *pFcb = (AFSFcb *)pFileObject->FsContext;
- AFSCcb *pCcb = (AFSCcb *)pFileObject->FsContext2;
BOOLEAN bSynchronousFo = BooleanFlagOn( pFileObject->Flags, FO_SYNCHRONOUS_IO);
- BOOLEAN bMapped = FALSE;
ULONG ulCurrentIO = 0, ulTotalLen = ByteCount;
PMDL pCurrentMdl = Irp->MdlAddress;
LARGE_INTEGER liCurrentOffset;
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) Exception thrown while preparing mdl write Status %08lX\n",
+ "AFSCachedWrite (%p) Exception thrown while preparing mdl write Status %08lX\n",
Irp,
ntStatus);
}
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) Failed to process MDL write Status %08lX\n",
+ "AFSCachedWrite (%p) Failed to process MDL write Status %08lX\n",
Irp,
ntStatus);
}
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) Failed to lock system buffer\n",
+ "AFSCachedWrite (%p) Failed to lock system buffer\n",
Irp);
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) Failed to issue CcCopyWrite %wZ @ %0I64X Status %08lX\n",
+ "AFSCachedWrite (%p) Failed to issue CcCopyWrite %wZ @ %0I64X Status %08lX\n",
Irp,
&pFileObject->FileName,
liCurrentOffset.QuadPart,
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) CcCopyWrite Threw exception %wZ @ %0I64X Status %08lX\n",
+ "AFSCachedWrite (%p) CcCopyWrite Threw exception %wZ @ %0I64X Status %08lX\n",
Irp,
&pFileObject->FileName,
liCurrentOffset.QuadPart,
AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCachedWrite (%08lX) CcFlushCache failure %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
+ "AFSCachedWrite (%p) CcFlushCache failure %wZ FID %08lX-%08lX-%08lX-%08lX Status 0x%08lX Bytes 0x%08lX\n",
Irp,
&pFileObject->FileName,
pFcb->ObjectInformation->FileId.Cell,
// Tell the server
//
- ntStatus = AFSUpdateFileInformation( &Fcb->ObjectInformation->ParentObjectInformation->FileId,
+ ntStatus = AFSUpdateFileInformation( &Fcb->ObjectInformation->ParentFileId,
Fcb->ObjectInformation,
&pCcb->AuthGroup);
IN PIRP Irp)
{
+ UNREFERENCED_PARAMETER(DeviceObject);
NTSTATUS ntStatus = STATUS_SUCCESS;
- AFSPIOCtlIORequestCB stIORequestCB;
PIO_STACK_LOCATION pIrpSp = IoGetCurrentIrpStackLocation( Irp);
AFSFcb *pFcb = NULL;
AFSCcb *pCcb = NULL;
&pCcb->AuthGroup,
&pCcb->DirectoryCB->NameInformation.FileName,
NULL,
+ NULL,
+ 0,
pIoRequest,
sizeof( AFSPipeIORequestCB) +
pIrpSp->Parameters.Write.Length,
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSShareWrite (%08lX) Failed service write Status %08lX\n",
+ "AFSShareWrite (%p) Failed service write Status %08lX\n",
Irp,
ntStatus);