// other requests coming through
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Start load library\n",
- __FUNCTION__);
+ __FUNCTION__));
ntStatus = KeWaitForSingleObject( &pDevExt->Specific.Control.LoadLibraryEvent,
Executive,
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSLoadLibrary Wait for LoadLibraryEvent failure %08lX\n",
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
if( BooleanFlagOn( pDevExt->Specific.Control.LibraryState, AFS_LIBRARY_LOADED))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"%s Library already loaded\n",
- __FUNCTION__);
+ __FUNCTION__));
try_return( ntStatus = STATUS_DEVICE_NOT_READY);
}
if( pDevExt->Specific.Control.LibraryServicePath.Buffer == NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSLoadLibrary AFS_GENERIC_MEMORY_25_TAG allocation error\n");
+ "AFSLoadLibrary AFS_GENERIC_MEMORY_25_TAG allocation error\n"));
try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES);
}
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"%s Failed to load library Status %08lX\n",
__FUNCTION__,
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
if( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSLoadLibrary IoGetDeviceObjectPointer failure %08lX\n",
- ntStatus);
+ ntStatus));
try_return( ntStatus);
}
ClearFlag( pDevExt->Specific.Control.LibraryState, AFS_LIBRARY_QUEUE_CANCELLED);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"%s Completed load library, processing queued requests\n",
- __FUNCTION__);
+ __FUNCTION__));
AFSReleaseResource( &pDevExt->Specific.Control.LibraryStateLock);
try_exit:
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY | AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE,
"%s Library load complete Status %08lX\n",
__FUNCTION__,
- ntStatus);
+ ntStatus));
if( !NT_SUCCESS( ntStatus))
{
// other requests coming through
//
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Start unload library\n",
- __FUNCTION__);
+ __FUNCTION__));
ntStatus = KeWaitForSingleObject( &pDevExt->Specific.Control.LoadLibraryEvent,
Executive,
ntStatus != STATUS_SUCCESS)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Failed request event Status %08lX\n",
__FUNCTION__,
- ntStatus);
+ ntStatus));
SetFlag( pDevExt->Specific.Control.LibraryState, AFS_LIBRARY_LOADED);
try_return( ntStatus);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Wait for inflight requests to complete %08lX\n",
__FUNCTION__,
- pDevExt->Specific.Control.InflightLibraryRequests);
+ pDevExt->Specific.Control.InflightLibraryRequests));
}
AFSReleaseResource( &pDevExt->Specific.Control.LibraryStateLock);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Processing queued results\n",
- __FUNCTION__);
+ __FUNCTION__));
AFSProcessQueuedResults( TRUE);
try_exit:
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Library unload complete Status %08lX\n",
__FUNCTION__,
- ntStatus);
+ ntStatus));
KeSetEvent( &pDevExt->Specific.Control.LoadLibraryEvent,
0,
AFSAcquireShared( &pDevExt->Specific.Control.LibraryStateLock,
TRUE);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Entry State %08lX Irp %p Function %08lX\n",
__FUNCTION__,
pRDRDevExt->DeviceFlags,
Irp,
- pIrpSp->MajorFunction);
+ pIrpSp->MajorFunction));
if( BooleanFlagOn( pRDRDevExt->DeviceFlags, AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN))
{
if( Irp != NULL)
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Queuing request %p\n",
__FUNCTION__,
- Irp);
+ Irp));
ntStatus = AFSQueueLibraryRequest( Irp);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Queued request %p Status %08lX\n",
__FUNCTION__,
Irp,
- ntStatus);
+ ntStatus));
}
else
{
ntStatus = STATUS_TOO_LATE;
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Failing request %p\n",
__FUNCTION__,
- Irp);
+ Irp));
}
try_return( ntStatus);
try_exit:
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Completed Irp %p Status %08lX Inflight Count %08lX\n",
__FUNCTION__,
Irp,
ntStatus,
- pDevExt->Specific.Control.InflightLibraryRequests);
+ pDevExt->Specific.Control.InflightLibraryRequests));
AFSReleaseResource( &pDevExt->Specific.Control.LibraryStateLock);
}
__Enter
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Inflight Count %08lX\n",
__FUNCTION__,
- pDevExt->Specific.Control.InflightLibraryRequests);
+ pDevExt->Specific.Control.InflightLibraryRequests));
if( InterlockedDecrement( &pDevExt->Specific.Control.InflightLibraryRequests) == 0)
{
AFSAcquireExcl( &pDevExt->Specific.Control.LibraryQueueLock,
TRUE);
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Entry for Irp %p Function %08lX\n",
__FUNCTION__,
Irp,
- pIrpSp->MajorFunction);
+ pIrpSp->MajorFunction));
//
// Has the load processing timed out and we are no longer
BooleanFlagOn( pRDRDevExt->DeviceFlags, AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_ERROR,
"%s Library not loaded for Irp %p\n",
__FUNCTION__,
- Irp);
+ Irp));
try_return( ntStatus = STATUS_DEVICE_NOT_READY);
}
try_exit:
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Completed for Irp %p Status %08lX\n",
__FUNCTION__,
Irp,
- ntStatus);
+ ntStatus));
AFSReleaseResource( &pDevExt->Specific.Control.LibraryQueueLock);
}
__Enter
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Entry\n",
- __FUNCTION__);
+ __FUNCTION__));
//
// Loop through the queue either resubmitting requests or cancelling them
pRequest->Irp->IoStatus.Status = STATUS_CANCELLED;
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Cancelling request Irp %p\n",
__FUNCTION__,
- pRequest->Irp);
+ pRequest->Irp));
IoCompleteRequest( pRequest->Irp,
IO_NO_INCREMENT);
else
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Resubmitting request Irp %p\n",
__FUNCTION__,
- pRequest->Irp);
+ pRequest->Irp));
AFSSubmitLibraryRequest( pRequest->Irp);
}
ExFreePool( pRequest);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Completed\n",
- __FUNCTION__);
+ __FUNCTION__));
}
return ntStatus;
__Enter
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOAD_LIBRARY,
+ AFSDbgTrace(( AFS_SUBSYSTEM_LOAD_LIBRARY,
AFS_TRACE_LEVEL_VERBOSE,
"%s Submitting Irp %p Function %08lX\n",
__FUNCTION__,
Irp,
- pIrpSp->MajorFunction);
+ pIrpSp->MajorFunction));
switch( pIrpSp->MajorFunction)
{
if ( !NT_SUCCESS( ntStatus))
{
- AFSDbgLogMsg( AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFSDbgTrace(( AFS_SUBSYSTEM_INIT_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
"AFSInitializeLibrary AFSSendDeviceIoControl failure %08lX\n",
- ntStatus);
+ ntStatus));
+ }
+ }
+
+ return ntStatus;
+}
+
+NTSTATUS
+AFSConfigLibraryDebug()
+{
+
+ NTSTATUS ntStatus = STATUS_SUCCESS;
+ AFSDebugTraceConfigCB stConfigLib;
+ AFSDeviceExt *pDevExt;
+
+ __Enter
+ {
+
+ if ( AFSDeviceObject != NULL &&
+ AFSDeviceObject->DeviceExtension != NULL)
+ {
+
+ pDevExt = (AFSDeviceExt *)AFSDeviceObject->DeviceExtension;
+
+ if ( pDevExt->Specific.Control.LibraryDeviceObject != NULL)
+ {
+
+ RtlZeroMemory( &stConfigLib,
+ sizeof( AFSDebugTraceConfigCB));
+
+ if ( BooleanFlagOn( AFSDebugFlags, AFS_DBG_TRACE_TO_DEBUGGER) ||
+ AFSDbgBufferLength > 0)
+ {
+
+ stConfigLib.AFSDbgLogMsg = AFSDebugTraceFnc;
+ }
+ else
+ {
+
+ stConfigLib.AFSDbgLogMsg = NULL;
+ }
+
+ ntStatus = AFSSendDeviceIoControl( pDevExt->Specific.Control.LibraryDeviceObject,
+ IOCTL_AFS_CONFIG_LIBRARY_TRACE,
+ &stConfigLib,
+ sizeof( AFSDebugTraceConfigCB),
+ NULL,
+ 0,
+ NULL);
+
+ if ( !NT_SUCCESS( ntStatus))
+ {
+
+ AFSDbgTrace(( AFS_SUBSYSTEM_INIT_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSInitializeLibrary AFSSendDeviceIoControl failure %08lX\n",
+ ntStatus));
+ }
+ }
}
}