So long time listener, first time caller. I’ve been reading these forums for the past few years and they have greatly helped me as I develop kernel mode components. But now I am stuck and I can’t seem to find a solution. I am writing a minifilter driver that among other things, has to rename a file (not as a REPARSE). I do this in pre-create. Now, before anyone says you can’t do stuff in pre-create because the FileObject is not valid, I know. I use FltCreateFileEx to open the file (which also checks if the file exists), and if it does I issue a FltSetInformationFile command to change the name. Then if all goes smoothly, I modify the TargetFileObject and continue on. If the file doesn’t exist, I just modify the TargetFileObject to create the newly modified file. This works fine until I run into pre-create commands that have FILE_OPEN_REPARSE_POINT. When that flag is there, I get NTFS_FILE_SYSTEM (24) BugCheck for the FltSetInformationFile operation. If I just want to query the actual reparse data, via FltFsControlFile, again opening the file first with FltCreateFileEx to get the FILE_OBJECT, it also gives me NTFS_FILE_SYSTEM BugCheck.
Another sorted of related issue, is calling ObDereferenceObject on the FILE_OBJECT returned from FltCreateFileEx. The documentation says you have to do it, but when I actually make the call, Verifier throws an error. Anyone have any insight on this?
My test environment is a VMWare Windows 7 x64 with two virtual removable drives mounted, 1 FAT and 1 NTFS. Attached is the abbreviated code as well as the two !analyze dumps. Any help would be appreciated.
-Dave
FLT_PREOP_CALLBACK_STATUS ret = FLT_PREOP_SUCCESS_WITH_CALLBACK;
NTSTATUS status = 0;
PINSTANCE_CONTEXT InsCtx = NULL;
PFLT_FILE_NAME_INFORMATION nameInfo = NULL;
PFILE_RENAME_INFORMATION fri = NULL;
PREPARSE_DATA_BUFFER rpb = NULL;
ULONG fnl = 0;
HANDLE fh;
HANDLE dh;
FILE_OBJECT fo;
FILE_OBJECT dirobj;
OBJECT_ATTRIBUTES attributes;
IO_STATUS_BLOCK iob;
BOOLEAN renameFile = FALSE;
BOOLEAN slOTD = FALSE;
UNICODE_STRING newFileName;
if (FlagOn(Data->Iopb->OperationFlags, SL_OPEN_TARGET_DIRECTORY)) {
ClearFlag(Data->Iopb->OperationFlags, SL_OPEN_TARGET_DIRECTORY);
slOTD = TRUE;
}
status = FltGetFileNameInformation(Data, FLT_FILE_NAME_OPENED | FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY, &nameInfo);
if (!NT_SUCCESS(status)) {
ret = FLT_PREOP_COMPLETE;
goto cleanup;
}
status = FltParseFileNameInformation(nameInfo);
if (!NT_SUCCESS(status)) {
ret = FLT_PREOP_COMPLETE;
goto cleanup;
}
if (nameInfo == NULL) {
ret = FLT_PREOP_COMPLETE;
goto cleanup;
}
if (slOTD)
SetFlag(Data->Iopb->OperationFlags, SL_OPEN_TARGET_DIRECTORY);
if (FlagOn(Data->Iopb->Parameters.Create.Options, FILE_OPEN_REPARSE_POINT)) {
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t FILE_OPEN_REPARSE_POINT\n”);
InitializeObjectAttributes(&attributes, &nameInfo->Name, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
status = FltCreateFileEx(FltObjects->Filter, FltObjects->Instance, &fh, &fo, GENERIC_READ, &attributes, &iob, 0, FILE_ATTRIBUTE_NORMAL, 0, FILE_OPEN, 0, NULL, 0, 0);
if (NT_SUCCESS(status)) {
fnl = MAXIMUM_REPARSE_DATA_BUFFER_SIZE;
rpb = (PREPARSE_DATA_BUFFER)ExAllocatePoolWithTag(NonPagedPool, fnl, TAG_PRE_CREATE);
if (rpb != NULL) {
RtlZeroMemory(rpb, fnl);
/*************BUG CHECK HERE**********/
status = FltFsControlFile(FltObjects->Instance, &fo, FSCTL_GET_REPARSE_POINT, NULL, 0, &rpb, fnl, &sz);
if (NT_SUCCESS(status)) {
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t *** Reparse Info ***\n”);
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t\t ReparseDataLength = %d\n”, rpb->ReparseDataLength);
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t\t Tag = %x\n”, rpb->ReparseTag);
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t\t SymbolicLinkReparseBuffer.PathBuffer = ‘%S’\n”, rpb->SymbolicLinkReparseBuffer.PathBuffer);
} else {
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t FltFsControlFile = %d\n”, status);
}
ExFreePoolWithTag(rpb, TAG_PRE_CREATE);
}
FltClose(fh);
//ObDereferenceObject(&fo);
} else {
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t FltCreateFileEx failed = %d\n”, status);
}
}
/*
Code removed
*/
if (renameFile) {
InitializeObjectAttributes(&attributes, &nameInfo->Name, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL);
status = FltCreateFileEx(FltObjects->Filter, FltObjects->Instance, &fh, &fo, DELETE, &attributes, &iob, 0, FILE_ATTRIBUTE_NORMAL, 0, FILE_OPEN, 0, NULL, 0, 0);
if (NT_SUCCESS(status)) {
fnl = sizeof(FILE_RENAME_INFORMATION) + newFileName.Length + sizeof(WCHAR);
fri = (PFILE_RENAME_INFORMATION)FltAllocatePoolAlignedWithTag(FltObjects->Instance, NonPagedPool, fnl, TAG_PRE_CREATE);
if (fri == NULL) {
goto cleanup;
}
RtlZeroMemory(fri, fnl);
fri->ReplaceIfExists = TRUE;
fri->RootDirectory = NULL;
fri->FileNameLength = newFileName.Length;
RtlCopyMemory(fri->FileName, newFileName.Buffer, newFileName.Length);
/*************BUG CHECK HERE**********/
status = FltSetInformationFile(FltObjects->Instance, &fo, fri, fnl, FileRenameInformation);
if (NT_SUCCESS(status)) {
RtlCopyMemory(Data->Iopb->TargetFileObject->FileName.Buffer + ((pos+sizeof(WCHAR))/sizeof(WCHAR)), newFileName.Buffer, newFileName.Length);
FltSetCallbackDataDirty(Data);
DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, “\t\t\t TargetFileObject = ‘%wZ’\n”, Data->Iopb->TargetFileObject->FileName);
} else {
goto cleanup;
}
FltFreePoolAlignedWithTag(FltObjects->Instance, fri, TAG_PRE_CREATE);
FltClose(fh);
//ObDereferenceObject(&fo);
}
}
*** Fatal System Error: 0x00000024
(0x00000000001904FB,0xFFFFF88002892658,0xFFFFF88002891EB0,0xFFFFF880012B1E9D)
Break instruction exception - code 80000003 (first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.
A fatal system error has occurred.
Connected to Windows 7 7600 x64 target at (Tue Jul 9 14:41:47.999 2013 (UTC - 4:00)), ptr64 TRUE
Loading Kernel Symbols
…
…
…
Loading User Symbols
…
…
…
Loading unloaded module list
…
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 24, {1904fb, fffff88002892658, fffff88002891eb0, fffff880012b1e9d}
Probably caused by : SFDrv64.sys ( SFDrv64!hdPreCreate+bbf )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
fffff800`02a85f60 cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
NTFS_FILE_SYSTEM (24)
If you see NtfsExceptionFilter on the stack then the 2nd and 3rd
parameters are the exception record and context record. Do a .cxr
on the 3rd parameter and then kb to obtain a more informative stack
trace.
Arguments:
Arg1: 00000000001904fb
Arg2: fffff88002892658
Arg3: fffff88002891eb0
Arg4: fffff880012b1e9d
Debugging Details:
EXCEPTION_RECORD: fffff88002892658 – (.exr 0xfffff88002892658)
ExceptionAddress: fffff880012b1e9d (Ntfs!NtfsGetReparsePoint+0x0000000000000095)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff
Attempt to read from address ffffffffffffffff
CONTEXT: fffff88002891eb0 – (.cxr 0xfffff88002891eb0)
rax=fffff80002c9a354 rbx=fffff9800c622f68 rcx=001c033400071d54
rdx=fffff9800c622e50 rsi=fffffa80024e6b30 rdi=0000000000000000
rip=fffff880012b1e9d rsp=fffff88002892890 rbp=0000000000000002
r8=0000000000000000 r9=0000000000000000 r10=0000000000000004
r11=fffffa80024e6b30 r12=fffffa8001ea2420 r13=0000000000000001
r14=00071eb300071d80 r15=fffff9800c622e50
iopl=0 nv up ei ng nz na pe nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010282
Ntfs!NtfsGetReparsePoint+0x95:
fffff880012b1e9d 45846e04 test byte ptr [r14+4],r13b ds:002b:00071eb3
00071d84=??
Resetting default scope
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
PROCESS_NAME: explorer.exe
CURRENT_IRQL: 2
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
EXCEPTION_PARAMETER1: 0000000000000000
EXCEPTION_PARAMETER2: ffffffffffffffff
READ_ADDRESS: ffffffffffffffff
FOLLOWUP_IP:
SFDrv64!hdPreCreate+bbf [c:\software\vs\SFDrv\x64\SFDrv.c @ 1115]
fffff880`03987fcf 898424c8020000 mov dword ptr [rsp+2C8h],eax
FAULTING_IP:
Ntfs!NtfsGetReparsePoint+95
fffff880`012b1e9d 45846e04 test byte ptr [r14+4],r13b
BUGCHECK_STR: 0x24
LAST_CONTROL_TRANSFER: from fffff880012f751e to fffff880012b1e9d
STACK_TEXT:
fffff88002892890 fffff880
012f751e : fffffa80024e6b30 fffff980
0c622e50 fffffa8000000000 fffff880
02892a78 : Ntfs!NtfsGetReparsePoint+0x95
fffff880028929f0 fffff880
012f32ed : fffffa80024e6b30 00000000
00000000 0000000000000002 00000000
00000000 : Ntfs!NtfsUserFsRequest+0xca
fffff88002892a30 fffff800
02f33c16 : fffff9800c622e50 fffff980
0c622e50 0000000000000000 fffffa80
024e6b30 : Ntfs!NtfsFsdFileSystemControl+0x13d
fffff88002892ad0 fffff880
0113623f : fffff9800c622fb0 fffff880
02892b80 fffffa80040f8770 fffffa80
01e6d650 : nt!IovCallDriver+0x566
fffff88002892b30 fffff880
0113894a : 0000000000000000 00000000
00000000 0000000000000000 fffffa80
040f8770 : fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x24f
fffff88002892bc0 fffff880
0116e0a5 : fffffa8001e73bc0 00000000
00000023 fffffa8000dad810 fffffa80
040f8820 : fltmgr!FltPerformSynchronousIo+0x2ca
fffff88002892c60 fffff880
0116eb28 : 0000000000000000 fffff880
02892f20 00000000000900a8 fffffa80
024d86b0 : fltmgr!IssueControlOperation+0x395
fffff88002892cf0 fffff880
01171c28 : 0000000000000000 fffffa80
01e81c20 fffff88002892f20 00000000
000900a8 : fltmgr!FltFsControlFile+0x48
fffff88002892d50 fffff880
03987fcf : 0000000000000016 00000000
00000016 fffff8a002139788 00000000
00000003 : fltmgr!FltvFsControlFile+0x68
fffff88002892da0 fffff880
01173c3e : fffffa8001ef9ce0 fffff880
02893558 fffff88002893530 00000000
00000100 : SFDrv64!hdPreCreate+0xbbf [c:\software\vs\SFDrv\x64\SFDrv.c @ 1115]
fffff880028933d0 fffff880
01135027 : 0000000000000000 fffff800
02a2c943 fffffa80017ea398 fffffa80
01ef9d80 : fltmgr!FltvPreOperation+0xbe
fffff880028934e0 fffff880
011378ca : fffffa8001e92f00 fffffa80
01e92f00 fffffa8001e5b800 fffffa80
00dad800 : fltmgr!FltpPerformPreCallbacks+0x2f7
fffff880028935e0 fffff880
011552a3 : fffff9800c788e50 fffff980
0c788e50 fffff9800c788e50 fffffa80
01e92f20 : fltmgr!FltpPassThroughInternal+0x4a
fffff88002893610 fffff800
02f33c16 : fffff9800c788e50 00000000
00000002 0000000000000040 00000000
00000000 : fltmgr!FltpCreate+0x293
fffff880028936c0 fffff800
02d8e477 : 0000000000000005 fffff800
02d8ded0 fffffa8003c97010 fffffa80
01e6de70 : nt!IovCallDriver+0x566
fffff88002893720 fffff800
02d84764 : fffffa8003f35d30 00000000
00000000 fffffa80040f4010 fffff800
02abae01 : nt!IopParseDevice+0x5a7
fffff880028938b0 fffff800
02d89876 : fffffa80040f4010 fffff880
02893a30 0000000000000040 fffffa80
00cef750 : nt!ObpLookupObjectName+0x585
fffff880028939b0 fffff800
02d90587 : 00000000000007ff 00000000
00000001 fffffa8001e93001 00000000
00000180 : nt!ObOpenObjectByName+0x306
fffff88002893a80 fffff800
02da92a4 : 000000000aeea8e8 fffff8a0
00020080 fffff8a001954d90 00000000
078cf0c0 : nt!IopCreateFile+0x2b7
fffff88002893b20 fffff800
02a8d153 : fffffa80029484c0 00000000
00000001 fffffa8001ea2420 fffff800
02da1094 : nt!NtOpenFile+0x58
fffff88002893bb0 00000000
77ba01ea : 000007fefb9d23d8 00000000
00000000 000000000ae3f800 00000000
00020080 : nt!KiSystemServiceCopyEnd+0x13
00000000078cf088 000007fe
fb9d23d8 : 0000000000000000 00000000
0ae3f800 0000000000020080 00000000
00000000 : ntdll!NtOpenFile+0xa
00000000078cf090 000007fe
fb9d26b8 : 000000000aeea8e0 00000000
0af6b920 00000000078c0000 463356c1
41e90f3e : ntmarta!I_MartaFileNtOpenFile+0x58
00000000078cf110 000007fe
fb9d2809 : 000000000aeea8e0 00000000
0ae3f800 000007fefb9d2610 00000000
078cf300 : ntmarta!MartaOpenFileNamedObject+0x140
00000000078cf190 000007fe
fef3fa34 : 000000000ae3f800 00000000
00000001 0000000000000005 00000000
078cf300 : ntmarta!AccRewriteGetNamedRights+0xe7
00000000078cf240 000007fe
f8962d14 : 000000000af154e8 00000000
0ae3f800 00000000078cf398 00000000
078cf848 : ADVAPI32!GetNamedSecurityInfoW+0xa5
00000000078cf2b0 000007fe
f8963a63 : 000000000af154e8 00000000
0af154e0 00000000078cf3b0 000007fe
ff7a5027 : ntshrui!CFolderAclEngine::_GetAcl+0x5c
00000000078cf320 000007fe
f89639b4 : 0000000000000000 00007c21
132d9d43 000000000ae3f800 00000000
00000000 : ntshrui!CFolderAclEngine::_IsItemPrivate+0x7b
00000000078cf380 000007fe
f89640bf : 0000000000000000 00000000
00000000 000000000aeaaf98 00000000
078cf458 : ntshrui!CSmbShareEngine::GetItemSharingStatus+0x2c
00000000078cf3b0 000007fe
f8963ff6 : 0000000000000000 00000000
002013b8 0000000000000002 00000000
00000000 : ntshrui!CSharingOverlayPrivate::_GetSharingStatus+0x87
00000000078cf3f0 000007fe
fdee85e3 : 0000000000231060 00000000
00000000 0000000000010000 00000000
00000000 : ntshrui!CSharingOverlayPrivate::IsMemberOf+0x6e
00000000078cf440 000007fe
fe01469c : 0000000080004005 000007fe
fdee7907 00000000078cf520 00000000
00000001 : SHELL32!CFSIconOverlayManager::_GetFileOverlayInfo+0x13e
00000000078cf500 000007fe
fdee2bcb : fffffffff4fb6420 00000000
00000001 0000000000000000 000007fe
ff7a5027 : SHELL32!CFSIconOverlayManager::GetFileOverlayInfo+0x1c
00000000078cf540 000007fe
fdee2adc : 000000000aeea130 00000000
0dfb8880 000000000dfb8880 00000000
00000000 : SHELL32!CFSFolder::_GetOverlayInfo+0xf1
00000000078cf7e0 000007fe
fdee22db : 000000000aeea130 000007fe
fadbce3f 0000000000000001 00000000
00000001 : SHELL32!CFSFolder::GetOverlayIndex+0x23
00000000078cf810 000007fe
fdf09408 : 000000000b0df350 00000000
0dfb8880 0000000000000000 00000000
00000000 : SHELL32!CIconOverlayTask::InternalResumeRT+0x129
00000000078cf890 000007fe
fe1b7e3c : 8000000001000000 00000000
078cf920 000000000b0df350 00000000
0000000a : SHELL32!CRunnableTask::Run+0xda
00000000078cf8c0 000007fe
fe07f005 : 000000000b0df350 00000000
00000000 000000000b0df350 00000000
00000002 : SHELL32!CShellTask::TT_Run+0x124
00000000078cf8f0 000007fe
fdf2e58a : 000000000b074690 00000000
0b074690 0000000000000000 00000000
00000000 : SHELL32!CShellTaskThread::ThreadProc+0x1d2
00000000078cf990 000007fe
ff7a3a7f : 000007fffff96000 00000000
00256a80 00000000001f0b10 00000000
00000000 : SHELL32!CShellTaskThread::s_ThreadProc+0x22
00000000078cf9c0 00000000
77b6f8eb : 000000000ab8c890 00000000
0ab8c890 00000000000004ff 00000000
0000000a : SHLWAPI!ExecuteWorkItemThreadProc+0xf
00000000078cf9f0 00000000
77b69d9f : 0000000000000000 00000000
0b06e8f0 00000000001f0b10 00000000
0df7a828 : ntdll!RtlpTpWorkCallback+0x16b
00000000078cfad0 00000000
77a4f56d : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!TppWorkerThread+0x5ff
00000000078cfdd0 00000000
77b83281 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : kernel32!BaseThreadInitThunk+0xd
00000000078cfe00 00000000
00000000 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!RtlUserThreadStart+0x1d
FAULTING_SOURCE_LINE: c:\software\vs\SFDrv\x64\SFDrv.c
FAULTING_SOURCE_FILE: c:\software\vs\SFDrv\x64\SFDrv.c
FAULTING_SOURCE_LINE_NUMBER: 1115
SYMBOL_STACK_INDEX: 9
SYMBOL_NAME: SFDrv64!hdPreCreate+bbf
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: SFDrv64
IMAGE_NAME: SFDrv64.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 51dc5944
STACK_COMMAND: .cxr 0xfffff88002891eb0 ; kb
FAILURE_BUCKET_ID: X64_0x24_VRF_SFDrv64!hdPreCreate+bbf
BUCKET_ID: X64_0x24_VRF_SFDrv64!hdPreCreate+bbf
Followup: MachineOwner
kd> .exr 0xfffff88002892658
ExceptionAddress: fffff880012b1e9d (Ntfs!NtfsGetReparsePoint+0x0000000000000095)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff
Attempt to read from address ffffffffffffffff
kd> .cxr 0xfffff88002891eb0
rax=fffff80002c9a354 rbx=fffff9800c622f68 rcx=001c033400071d54
rdx=fffff9800c622e50 rsi=fffffa80024e6b30 rdi=0000000000000000
rip=fffff880012b1e9d rsp=fffff88002892890 rbp=0000000000000002
r8=0000000000000000 r9=0000000000000000 r10=0000000000000004
r11=fffffa80024e6b30 r12=fffffa8001ea2420 r13=0000000000000001
r14=00071eb300071d80 r15=fffff9800c622e50
iopl=0 nv up ei ng nz na pe nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010282
Ntfs!NtfsGetReparsePoint+0x95:
fffff880012b1e9d 45846e04 test byte ptr [r14+4],r13b ds:002b:00071eb3
00071d84=??
*** Fatal System Error: 0x00000024
(0x00000000001904FB,0xFFFFF880056AB468,0xFFFFF880056AACC0,0xFFFFF880012CB88D)
Break instruction exception - code 80000003 (first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.
A fatal system error has occurred.
Connected to Windows 7 7600 x64 target at (Tue Jul 9 14:43:52.286 2013 (UTC - 4:00)), ptr64 TRUE
Loading Kernel Symbols
…
…
…
Loading User Symbols
…
…
…
Loading unloaded module list
…
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 24, {1904fb, fffff880056ab468, fffff880056aacc0, fffff880012cb88d}
Probably caused by : SFDrv64.sys ( SFDrv64!hdPreCreate+1000 )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
fffff800`02a85f60 cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
NTFS_FILE_SYSTEM (24)
If you see NtfsExceptionFilter on the stack then the 2nd and 3rd
parameters are the exception record and context record. Do a .cxr
on the 3rd parameter and then kb to obtain a more informative stack
trace.
Arguments:
Arg1: 00000000001904fb
Arg2: fffff880056ab468
Arg3: fffff880056aacc0
Arg4: fffff880012cb88d
Debugging Details:
EXCEPTION_RECORD: fffff880056ab468 – (.exr 0xfffff880056ab468)
ExceptionAddress: fffff880012cb88d (Ntfs!NtfsCommonQueryInformation+0x000000000000009d)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff
Attempt to read from address ffffffffffffffff
CONTEXT: fffff880056aacc0 – (.cxr 0xfffff880056aacc0)
rax=fffff880056abcb8 rbx=fffffa8003f2eb60 rcx=0000000000000028
rdx=001c033400071d54 rsi=fffff880056ab820 rdi=fffff80002c9a354
rip=fffff880012cb88d rsp=fffff880056ab6a0 rbp=0000000000000002
r8=0000000000000000 r9=00071eb300071d80 r10=0000000000000004
r11=fffff880056ab778 r12=0000000000000004 r13=fffff98009e08f68
r14=0000000000000000 r15=fffff880056abf20
iopl=0 nv up ei ng nz na pe nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010282
Ntfs!NtfsCommonQueryInformation+0x9d:
fffff880012cb88d 418b4104 mov eax,dword ptr [r9+4] ds:002b:00071eb3
00071d84=???
Resetting default scope
DEFAULT_BUCKET_ID: WIN7_DRIVER_FAULT
PROCESS_NAME: explorer.exe
CURRENT_IRQL: 2
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.
EXCEPTION_PARAMETER1: 0000000000000000
EXCEPTION_PARAMETER2: ffffffffffffffff
READ_ADDRESS: ffffffffffffffff
FOLLOWUP_IP:
SFDrv64!hdPreCreate+1000 [c:\software\vs\SFDrv\x64\SFDrv.c @ 1220]
fffff880`03988410 898424c8020000 mov dword ptr [rsp+2C8h],eax
FAULTING_IP:
Ntfs!NtfsCommonQueryInformation+9d
fffff880`012cb88d 418b4104 mov eax,dword ptr [r9+4]
BUGCHECK_STR: 0x24
LAST_CONTROL_TRANSFER: from fffff880012cc906 to fffff880012cb88d
STACK_TEXT:
fffff880056ab6a0 fffff880
012cc906 : fffff880056ab820 fffff980
09e08e50 0000000000000028 fffff980
00000028 : Ntfs!NtfsCommonQueryInformation+0x9d
fffff880056ab780 fffff880
012ccea4 : fffff880056ab820 fffff980
09e08e50 fffff98009e08e50 fffff8a0
000018c0 : Ntfs!NtfsFsdDispatchSwitch+0x106
fffff880056ab800 fffff800
02f33c16 : fffff98009e08e50 00000000
00000002 0000000000000000 00000000
00000000 : Ntfs!NtfsFsdDispatchWait+0x14
fffff880056ab9f0 fffff880
0113623f : fffff98009e08fb0 fffff880
056abaa0 fffffa8001f36180 fffffa80
01e64a60 : nt!IovCallDriver+0x566
fffff880056aba50 fffff880
0113894a : 0000000000000000 00000000
00000000 0000000000000000 fffffa80
01f36180 : fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x24f
fffff880056abae0 fffff880
0116e4e2 : fffffa8001e73bc0 00000000
0000001b fffffa8000dad810 fffffa80
01f36230 : fltmgr!FltPerformSynchronousIo+0x2ca
fffff880056abb80 fffff880
0116e8c2 : 0000000000000002 fffff880
056abf20 fffffa80013b9718 fffff880
00000011 : fltmgr!FltQueryInformationFile+0x52
fffff880056abbc0 fffff880
0116ec01 : fffffa8001e31010 fffffa80
01e310c0 0000000000000048 00000000
00000000 : fltmgr!FltpOpenLinkOrRenameTarget+0x62
fffff880056abd00 fffff880
01171c98 : 0000000000000048 fffffa80
024535c0 fffff880056abf20 fffffa80
01f04b50 : fltmgr!FltSetInformationFile+0xc1
fffff880056abd60 fffff880
03988410 : 0000000000000016 00000000
00000016 fffff9800abe0ffe 00000000
00000003 : fltmgr!FltvSetInformationFile+0x48
fffff880056abda0 fffff880
01173c3e : fffffa8002457650 fffff880
056ac558 fffff880056ac530 00000000
00000100 : SFDrv64!hdPreCreate+0x1000 [c:\software\vs\SFDrv\x64\SFDrv.c @ 1220]
fffff880056ac3d0 fffff880
01135027 : 0000000000000000 fffff800
02a2c943 fffffa80013b8498 fffffa80
024576f0 : fltmgr!FltvPreOperation+0xbe
fffff880056ac4e0 fffff880
011378ca : fffffa80043c8a00 fffffa80
043c8a00 fffffa8001e5b800 fffffa80
00dad800 : fltmgr!FltpPerformPreCallbacks+0x2f7
fffff880056ac5e0 fffff880
011552a3 : fffff9800aa28e50 fffff980
0aa28e50 fffff9800aa28e50 fffffa80
043c8a20 : fltmgr!FltpPassThroughInternal+0x4a
fffff880056ac610 fffff800
02f33c16 : fffff9800aa28e50 00000000
00000002 0000000000000040 00000000
00000000 : fltmgr!FltpCreate+0x293
fffff880056ac6c0 fffff800
02d8e477 : 0000000000000005 fffff800
02d8ded0 fffffa8001f0f730 fffffa80
03d389c0 : nt!IovCallDriver+0x566
fffff880056ac720 fffff800
02d84764 : fffffa8003f35d30 00000000
00000000 fffffa8001e82010 fffff800
02abae01 : nt!IopParseDevice+0x5a7
fffff880056ac8b0 fffff800
02d89876 : fffffa8001e82010 fffff880
056aca30 0000000000000040 fffffa80
00cef750 : nt!ObpLookupObjectName+0x585
fffff880056ac9b0 fffff800
02d90587 : 00000000000007ff 00000000
00000001 fffffa80043c8b01 00000000
00000180 : nt!ObOpenObjectByName+0x306
fffff880056aca80 fffff800
02da92a4 : 000000000ac2cc58 fffff8a0
00020080 fffff8a001954cf0 00000000
0cf6efc0 : nt!IopCreateFile+0x2b7
fffff880056acb20 fffff800
02a8d153 : fffffa80029484c0 00000000
00000001 fffffa8003f2eb60 fffff800
02da1094 : nt!NtOpenFile+0x58
fffff880056acbb0 00000000
77ba01ea : 000007fefb9d23d8 00000000
00000000 000000000b0f5030 00000000
00020080 : nt!KiSystemServiceCopyEnd+0x13
000000000cf6ef88 000007fe
fb9d23d8 : 0000000000000000 00000000
0b0f5030 0000000000020080 00000000
00000000 : ntdll!NtOpenFile+0xa
000000000cf6ef90 000007fe
fb9d26b8 : 000000000ac2cc50 00000000
0b11c480 000000000cf6f010 463356c1
41e90f3e : ntmarta!I_MartaFileNtOpenFile+0x58
000000000cf6f010 000007fe
fb9d2809 : 000000000ac2cc50 00000000
0b0f5030 000007fefb9d2610 00000000
0cf6f200 : ntmarta!MartaOpenFileNamedObject+0x140
000000000cf6f090 000007fe
fef3fa34 : 000000000b0f5030 00000000
00000001 0000000000000005 00000000
0cf6f200 : ntmarta!AccRewriteGetNamedRights+0xe7
000000000cf6f140 000007fe
f8962d14 : 000000000af17548 00000000
0b0f5030 000000000cf6f298 00000000
0cf6f748 : ADVAPI32!GetNamedSecurityInfoW+0xa5
000000000cf6f1b0 000007fe
f8963a63 : 000000000af17548 00000000
0af17540 000000000cf6f2b0 000007fe
ff7a5027 : ntshrui!CFolderAclEngine::_GetAcl+0x5c
000000000cf6f220 000007fe
f89639b4 : 0000000000000000 00007c21
18579c43 000000000b0f5030 00000000
00000000 : ntshrui!CFolderAclEngine::_IsItemPrivate+0x7b
000000000cf6f280 000007fe
f89640bf : 0000000000000000 00000000
00000000 000000000af9b8c8 00000000
0cf6f358 : ntshrui!CSmbShareEngine::GetItemSharingStatus+0x2c
000000000cf6f2b0 000007fe
f8963ff6 : 0000000000000000 00000000
002013b8 0000000000000002 00000000
00000000 : ntshrui!CSharingOverlayPrivate::_GetSharingStatus+0x87
000000000cf6f2f0 000007fe
fdee85e3 : 0000000000231060 00000000
00000000 0000000000010000 00000000
00000000 : ntshrui!CSharingOverlayPrivate::IsMemberOf+0x6e
000000000cf6f340 000007fe
fe01469c : 0000000080004005 000007fe
fdee7907 000000000cf6f420 00000000
00000001 : SHELL32!CFSIconOverlayManager::_GetFileOverlayInfo+0x13e
000000000cf6f400 000007fe
fdee2bcb : fffffffff4fb7f00 00000000
00000001 0000000000000000 000007fe
ff7a5027 : SHELL32!CFSIconOverlayManager::GetFileOverlayInfo+0x1c
000000000cf6f440 000007fe
fdee2adc : 0000000003f32d50 00000000
00000000 000000000b241e00 00007c21
18579cda : SHELL32!CFSFolder::_GetOverlayInfo+0xf1
000000000cf6f6e0 000007fe
fdee22db : 000000000ac2cda0 00000000
0ad97630 0000000000000001 000007fe
ffa3987e : SHELL32!CFSFolder::GetOverlayIndex+0x23
000000000cf6f710 000007fe
fdf09408 : 000000000af486d0 00000000
0ad97630 0000000000000000 00000000
00000000 : SHELL32!CIconOverlayTask::InternalResumeRT+0x129
000000000cf6f790 000007fe
fe1b7e3c : 8000000001000000 00000000
0cf6f820 000000000af486d0 00000000
0000000a : SHELL32!CRunnableTask::Run+0xda
000000000cf6f7c0 000007fe
fe07f005 : 000000000af486d0 00000000
00000000 000000000af486d0 00000000
00000002 : SHELL32!CShellTask::TT_Run+0x124
000000000cf6f7f0 000007fe
fdf2e58a : 000000000b06ea50 00000000
0b06ea50 0000000000000000 00000000
029704e8 : SHELL32!CShellTaskThread::ThreadProc+0x1d2
000000000cf6f890 000007fe
ff7a3a7f : 000007fffff5a000 00000000
00256a80 00000000001f0b10 00000000
029704e8 : SHELL32!CShellTaskThread::s_ThreadProc+0x22
000000000cf6f8c0 00000000
77b6f8eb : 000000000df79cd0 00000000
0df79cd0 0000000000256a80 00000000
0000000a : SHLWAPI!ExecuteWorkItemThreadProc+0xf
000000000cf6f8f0 00000000
77b69d9f : 0000000000000000 00000000
0b06ea70 00000000001f0b10 00000000
0aebee68 : ntdll!RtlpTpWorkCallback+0x16b
000000000cf6f9d0 00000000
77a4f56d : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!TppWorkerThread+0x5ff
000000000cf6fcd0 00000000
77b83281 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : kernel32!BaseThreadInitThunk+0xd
000000000cf6fd00 00000000
00000000 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!RtlUserThreadStart+0x1d
FAULTING_SOURCE_LINE: c:\software\vs\SFDrv\x64\SFDrv.c
FAULTING_SOURCE_FILE: c:\software\vs\SFDrv\x64\SFDrv.c
FAULTING_SOURCE_LINE_NUMBER: 1220
SYMBOL_STACK_INDEX: a
SYMBOL_NAME: SFDrv64!hdPreCreate+1000
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: SFDrv64
IMAGE_NAME: SFDrv64.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 51dc59bd
STACK_COMMAND: .cxr 0xfffff880056aacc0 ; kb
FAILURE_BUCKET_ID: X64_0x24_VRF_SFDrv64!hdPreCreate+1000
BUCKET_ID: X64_0x24_VRF_SFDrv64!hdPreCreate+1000
Followup: MachineOwner
kd> .exr 0xfffff880056ab468
ExceptionAddress: fffff880012cb88d (Ntfs!NtfsCommonQueryInformation+0x000000000000009d)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: ffffffffffffffff
Attempt to read from address ffffffffffffffff
kd> .cxr 0xfffff880056aacc0
rax=fffff880056abcb8 rbx=fffffa8003f2eb60 rcx=0000000000000028
rdx=001c033400071d54 rsi=fffff880056ab820 rdi=fffff80002c9a354
rip=fffff880012cb88d rsp=fffff880056ab6a0 rbp=0000000000000002
r8=0000000000000000 r9=00071eb300071d80 r10=0000000000000004
r11=fffff880056ab778 r12=0000000000000004 r13=fffff98009e08f68
r14=0000000000000000 r15=fffff880056abf20
iopl=0 nv up ei ng nz na pe nc
cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010282
Ntfs!NtfsCommonQueryInformation+0x9d:
fffff880012cb88d 418b4104 mov eax,dword ptr [r9+4] ds:002b:00071eb3
00071d84=???
kd> !verifier
Verify Level 41b … enabled options are:
Special pool
Special irql
All pool allocations checked on unload
Io subsystem checking enabled
IRP Logging