среда, 25 июля 2012 г.

fltmgr diagnostic messages

from driver verifier.Content of FltvMessageTable (to enlarge collection):

[0] A filter tried to pend a non IRP based callback data. Only IRP operations
can be pended. (Filter = %p (%s), Cbd = %p)

[1] A filter returned an unknown pre-operation callback status.
(Filter = %p (%s), Status = 0x%x)

[2] A filter returned an unknown post-operation callback status.
(Filter = %p (%s), Status = 0x%x)

[3] A filter tried to pend processing of a callback data which was
not marked for pending. This may have been because the filter pended an i/o
in the post-operation incorrectly - . (Filter = %p (%s), Cbd = %p)

[4] A filter passed in an invalid pre-operation callback status to FltCompletePendedPreOperation.
(Filter = %p (%s), Status = 0x%x, Cbd = %p)

[5] A filter is trying to continue a pended callback data at IRQL DISPATCH_LEVEL
or above. (Filter = %p (%s), Cbd = %p)

[6] A filter tried to complete pended callback data using FltCompletePendedPostOperation
in the pre-operation processing phase. FltCompletePendedPreOperation should be used
to continue processing of a callback data pended during pre-operation processing.
(Filter = %p (%s), Cbd = %p)

[7] A filter tried to complete pended callback data using FltCompletePendedPreOperation
in the post-operation processing phase. FltCompletePendedPostOperation should be
used to continue processing of a callback data pended during post-operation processing.
(Filter = %p (%s), Cbd = %p)

[8] A filter is trying to synchronize a callback data with its post-operation
routine but hasn't registered one. (Filter = %p (%s), Cbd = %p)

[9] A filter has set a completion context for a callback data which will be
lost. Probable cause of this is that no post-operation callback was requested
or routine was registered for this operation or the request was being pended
or completed. (Filter = %p (%s), Cbd = %p)

[A] A filter tried to disallow a non FAST IO based callback data.
FLT_PREOP_DISALLOW_FASTIO is only valid for FAST IO requests.
(Filter = %p (%s), Cbd = %p)

[B] A filter has marked a callback data dirty but is completing the request.
(Filter = %p (%s), Cbd = %p)

[C] A filter has not marked dirty callback data as dirty.
(Filter = %p (%s), Cbd = %p)

[D] A filter has marked a callback data dirty before issuing IO.
(Filter = %p (%s), Cbd = %p)

[E] A filter has modified the RequestorMode for filter generated IO.
(Filter = %p (%s), Cbd = %p)

[F] A filter tried to complete a callback data but has returned STATUS_PENDING
as the status in the iostatus block. (Filter = %p (%s), Cbd = %p)

[10] A filter failed a cleanup or close request. These operations cannot be
failed.
 (Filter = %p (%s), Cbd = %p, Status = 0x%x)

[11] A filter is redirecting a callback data to an invalid target instance.
This is caused either because the target instance is invalid or it does
not belong to this filter or is another instance on the same volume.
(Filter = %p (%s), Cbd = %p, Source Instance = %p, Target Instance = %p)

[12] A filter is redirecting callback data to a target instance whose volume
device stack is greater than the available stack locations in the IRP.
(Filter = %p (%s), Cbd = %p, Source Instance = %p, Target Instance = %p)

[13] A filter has changed the buffer during a pre operation callback but
has not registered a post operation callback and so will have no
opportunity to free the buffer during completion
(Filter = %p (%s), Cbd = %p, Source Instance = %p

[14] A filter is trying to lock a system buffer. (Cbd = %p)

[15] A filter is trying to lock buffers for an invalid operation. (Cbd = %p)

[16] A filter is calling FltDoCompletionProcessingWhenSafe when the callback
data is not in the post-processing phase. This routine can only be
called from the post-operation routine. (Filter = %p (%s), Cbd = %p)

[17] A filter is trying to use a callback data which wasn't generated using
FltAllocateCallbackData. (Filter = %p (%s),Cbd = %p)

[18] An attempt was made to issue IO on a file object which wasn't initialized.
(FileObject = %p)

[19] An attempt was made to issue an asynchronous IO on a file object which was
opened for synchronous IO. (FileObject = %p)

[1A] An attempt was made to issue IO at a negative byte offset on a file object.
(Filter = %p (%s), FileObject = %p)

[1B] An attempt was made to issue an asynchronous IO on a file object but no
byte offset was specified. (Filter = %p (%s), FileObject = %p)

[1C] An attempt was made to issue a non cached IO on a file object but the
buffer was not aligned. (Filter = %p (%s), FileObject = %p, Buffer = %p)

[1D] An attempt was made to issue a non cached IO on a file object but the
file offset specified was invalid. (Filter = %p (%s), FileObject = %p)

[1E] A filter changed the irp major code for callback data which is not
supported. (Filter = %p (%s), Cbd = %p)

[1F] An attempt has been made to compare instances which does not belong to
the same volume. Such a compare is meaningless. (Instances %p & %p)

[20] A filter has called one of the swap buffer mdl routines when the callback
data is not in the post-processing phase or is not an IRP operation.
(Filter = %p (%s), Cbd = %p)

[21] An attempt was made to reference an invalid callback data. (Cbd = %p)

[22] An attempt was made to reference an invalid filter object. (Filter = %p).

[23] An attempt was made to reference an invalid instance object. (Instance = %p).

[24] An attempt was made to reference an invalid volume object. (Volume = %p).

[25] A filter attempted to return MORE_PROCESSING_REQUIRED or call FltDoCompletionProcessingWhenSafe
but did not return pending from the pre-callback routine. (Filter = %p (%s), Cbd = %p)

[26] A filter attempted to complete an i/o via a pending i/o complete API for which this API is not
applicable, as it is not an IRP operation. (Filter = %p (%s), Cbd = %p)

[27] A filter is calling FltDoCompletionProcessingWhenSafe when the IO is
being drained. (Filter = %p (%s), Cbd = %p)

[28] A filter tried to disallow an IRP_MJ_SHUTDOWN, IRP_MJ_VOLUME_MOUNT,
 or IRP_MJ_VOLUME_DISMOUNT operation. (Filter = %p (%s), Cbd = %p)

[29] A filter tried to release/free an object that it did not own.
(Filter = %p (%s)), ObjectType = %s, Object = %p)
Type "!fltkd.filter %p 8 1" in the debugger for more information about the
filter and objects referenced/allocated by the filter.

[2A] Filter manager verifier object tracking may be out of sync for filter
(Filter = %p (%s)) because the verifier has so far encountered %d memory
allocation failure(s).
Filter manager verifier object tracking has so far encountered %d instance(s)
where the filter tried to release/free an object that it did not own including

[2B] this current instance. Some or all of these instances could be for objects that
Filter manager verifier object tracking could not track due to the memory
allocation failures sited above.
If the number of such instances is greater than the number of allocation
failures then the filter is definitely releasing/freeing some object that it
has not referenced/allocated. This may be but is not necessarily the object
that is being incorrectly released/freed.


[2C] Filter manager verifier object tracking may be out of sync for the system
because the verifier was unable to identify the calling filter for %d object
allocation(s)/reference(s) and for %d object deallocation(s)/release(s).
Failure to identify the calling filter for an object allocation/reference
may cause verifier to complain when the object is freed/released even though
the filter is not performing any illegal operation.


[2D] A filter (Filter = %p (%s)) leaked references to the following resources:
    %08d Filter Context Structures
    %08d FLT_CALLBACK_DATA structures
    %08d FLT_DEFERRED_IO_WORKITEM structures
    %08d FLT_GENERIC_WORKITEM structures
    %08d FLT_FILE_NAME_INFORMATION structures
    %08d FILE_OBJECT structures
    %08d FLT_OBJECT structures
    %08d ECP context structures
Type "!fltkd.filter %p 8 1" in the debugger for a list of leaked references

[2E] Filter manager verifier object tracking may be out of sync for the system
because the verifier was unable to identify the calling filter for %d object
allocation(s)/reference(s) and for %d object deallocation(s)/release(s).
Failure to identify the calling filter for an object deallocation/release
may cause verifier to complain when the filter is unloaded even though
the filter is not leaking any objects.


[2F] A filter tried to pend an operation that cannot be pended. (Filter = %p (%s), Cbd = %p)

[30] A filter is calling FltGetTunneledName when the callback
data is not in the post-processing phase. This routine can only be
called from the post-operation routine. (Filter = %p (%s), Cbd = %p)

[31] A filter has called the FltRequestOperationStatusCallback routine when the callback
data is not in the pre-processing phase or is not an IRP operation.
(Filter = %p (%s), Cbd = %p)

[32] A filter is trying to reissue synchronous IO for IO that is not an IRP based
operation or is not synchronized by filter manager. (Filter = %p (%s), Cbd = %p)

[33] A filter is trying to reissue synchronous IO with a different target
instance. Can't redirect reissued operations (Filter = %p (%s), Cbd = %p)

[34] A filter is trying to reissue synchronous IO for a create operation
that was cancelled (Filter = %p (%s), Cbd = %p)

[35] A filter tried to cancel a file open for an unsuccessful open or after a handle
is already created for the file. (Filter = %p (%s), FileObject = %p)

[36] A filter changed the IRQL across a call to its callback routine
(Filter = %p (%s), Routine = %p, Cbd = %p, IRQL before = %d, IRQL after = %d)

[37] A filter changed the thread APC disable count across a call to its callback routine
(Filter = %p (%s), Routine = %p, Cbd = %p, Count before = %s, Count after = %s)

[38] This count is decremented each time a driver calls KeEnterCriticalRegion,
KeInitializeMutex, or FsRtlEnterFileSystem and is incremented each time a
driver calls KeLeaveCriticalRegion, KeReleaseMutex, or FsRtlExitFileSystem.
Since these calls should always be in pairs, this value should be unchanged
across a mini-filter callback.

[39] A filter changed the threads Special APC disable count across a call to its callback routine
(Filter = %p (%s), Routine = %p, Cbd = %p, Count before = %s, Count after = %s)
This count is decremented each time a driver calls KeEnterGuardedRegion and
is incremented each time a driver calls KeLeaveGuardedRegion.

[3A] A filter has changed CallbackData->Iopb->OperationFlags directly for SL_FAIL_IMMEDIATELY or
SL_EXCLUSIVE_LOCK but didn't also set CallbackData->Iopb->Parameters.LockControl.FailImmediately
or Data->Iopb->Parameters.LockControl.ExclusiveLock. (Filter = %p (%s),Cbd = %p)

[3B] A filter has completed an operation but does not implement name provider callbacks. For example
if a filter completes an IRP_MJ_CREATE and is not a name provider it is possible that during name
queries the FO will make it's way to the file system and bugcheck. (Filter = %p, Cbd = %p)

[3C] A filter has returned FLT_PREOP_COMPLETE but didn't update the IoStatus.Status field in the
callback data(Filter = %p, Cbd = %p)

[3D] A filter has returned FLT_PREOP_COMPLETE but the IoStatus.Status field in the callback data
was set to STATUS_PENDING(Filter = %p, Cbd = %p)

[3E] A filter has completed an operation but changed the TargetFileObject or the TargetInstance. This
change will be ignored and nobody above will see this. Please make sure the design doesn't rely
on this working!(Filter = %p, Cbd = %p)

[3F] A filter tried to issue IO at an incorrect IRQL level, or with Special Kernel APCs disabled.
(Filter = %p (%s), MajorCode = 0x%x, IsPaging = 0x%x, NonCached = 0x%x, IRP_MN_MDL = 0x%x, IRQL = 0x%x, Special Kernel APCs Enabled = 0x%x)

[40] A filter called FltOplockFsctrl(Ex) for a create but the create didn't have either the
FILE_RESERVE_OPFILTER or FILE_OPEN_REQUIRING_OPLOCK flags set.(Filter = %p, Cbd = %p)

[41] A filter issued a create without setting the OBJ_KERNEL_HANDLE attribute.
(Filter = %p, (%s), Instance = %p, FileObject = %p)

[42] A filter issued a set information with an invalid FileInformationClass.
(Filter = %p, Instance = %p, FileObject = %p)

[43] A filter completed an FSCTL/IOCTL with an error but set the IoStatus
Information field. This value will be ignored.
(Filter = %p, Cbd = %p)

[44] A filter has returned an invalid status code from a name provider callback routine
(Filter = %p, (%s), Instance = %p, Status = 0x%x)

[45] A filter changed the callback status in the post-operation callback for
an FsFilter callback. This is not legal as there is no way to change
the status on the way back for an FsFilter operation
(Filter = %p (%s), Routine = %p, Status = 0x%x)

[46] A filter attempted to delete a section context.
(Filter = %p, (%s), Context = %p)

[47] A filter called FltGetContextsEx with an invalid size.
(Filter = %p, Instance = %p, FileObject = %p)

[48] A filter attempted to issue I/O either by specifying both a buffer and an MDL,
or by specifying neither.  Exactly one of a buffer or an MDL must be specified.
(Filter = %p, Instance = %p)

[49] A filter attempted to issue MDL I/O to a device that only accepts buffered I/O.
(Filter = %p, Instance = %p, FileObject = %p, DeviceObject = %p)

Комментариев нет:

Отправить комментарий