Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Upcoming OSR Seminars:

Writing WDF Drivers I: Core Concepts, Nashua, NH 15-19 May, 2017
Writing WDF Drivers II: Advanced Implementation Tech., Nashua, NH 23-26 May, 2017
Kernel Debugging and Crash Analysis, Dulles, VA 26-30 June, 2017
Windows Internals & Software Driver Development, Nashua, NH 24-28 July, 2017


Go Back   OSR Online Lists > ntfsd
Welcome, Guest
You must login to post to this list
  Message 1 of 5  
14 Jul 17 13:55
Sivaller
xxxxxx@gmail.com
Join Date: 13 Jul 2017
Posts To This List: 9
Why BSOD ?????

I don't understand,=20 See my party code of my diskfilesystemdriver , when i uncomment this line /////BEGIN Line incriminating BUG1////////////= =20 I HAVE BSOD. Thank My code incrimating : //////BEGIN Line incriminating BUG1//////////// =09=09=09=09=09=09=09=09=09=09=09=09=09=09if ((fileObject =3D=3D NULL)&& (I= rp->MdlAddress !=3D NULL)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//effet de bord 140720174 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PVOID currentAddress; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] Re= ads by file=3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09/*currentAddress =3D MmGetSyst= emAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (currentAddress =3D=3D NULL= ) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] = currentAddress=3DNULL PAS NORMAL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3D STATUS_INSUFFICI= ENT_RESOURCES; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09// here we could return the bo= otsector. If we don't have one =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09// the requested read lenght m= ust be returned as requested =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information =3D = irps->Parameters.Read.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] Off= set:%d Reads finished with length:%d\n",irps->Parameters.Read.ByteOffset.L= owPart, Irp->IoStatus.Information)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status =3D STATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} //////END Line incriminating BUG1//////////// My entire code dispatch NTSTATUS DrvDispatch ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { =09PIO_STACK_LOCATION irps; =09NTSTATUS status=3DSTATUS_NOT_IMPLEMENTED; =09KdPrintf(("[VFUM] control\n")); =09irps=3DNULL; =09if (Irp!=3DNULL) =09{ =09=09irps =3D IoGetCurrentIrpStackLocation(Irp);=20 =09//if (irps!=3DNULL) =09 =09=09=09KdPrintfd(("[VFUM] vfums_control : Device:%x Majorfunction %d irp = %x\n",DeviceObject,irps->MajorFunction,Irp)); =09=09=09{ =09=09=09=09if (irps->MajorFunction =3D=3D IRP_MJ_CREATE) =09=09=09=09{ =09=09=09=09=09KdPrintfd(("[F DRVDISPATCH]IRP_MJ_CREATE \n")); =09=09=09=09} =09=09=09=09if (irps->MajorFunction=3D=3DIRP_MJ_SYSTEM_CONTROL) =09=09=09=09{ =09=09=09=09=09KdPrintfd(("IRP_MJ_SYSTEM_CONTROL\n")); =09=09=09=09} =09=09=09=09if (irps->MajorFunction =3D=3D IRP_MJ_FILE_SYSTEM_CONTROL) =09=09=09=09{ =09=09=09=09=09KdPrintfd(("IRP_MJ_FILE_SYSTEM_CONTROL\n")); =09=09=09=09} =09=09=09} =09=09=09/*if ((irps->MajorFunction=3D=3DIRP_MN_CANCEL_REMOVE_DEVICE) || (i= rps->MajorFunction=3D=3DIRP_MN_REMOVE_DEVICE) || (irps->MajorFunction=3D=3D= IRP_MJ_CLOSE) || (irps->MajorFunction=3D=3DIRP_MN_QUERY_REMOVE_DEVICE) || (= irps->MajorFunction=3D=3DIRP_MN_STOP_DEVICE) || (irps->MajorFunction=3D=3DI= RP_MN_QUERY_STOP_DEVICE)) =09=09=09=09=09{ =09=09=09=09=09=09KdPrintf(("[VDUM] DeviceDispatch invalid device OK IRP_MN= _REMOVE_DEVICE\n")); =09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09} =09=09=09=09=09else =09=09=09=09=09{ =09=09=09=09=09=09Irp->IoStatus.Status=3Dstatus=3DSTATUS_NO_MEDIA_IN_DEVICE= ; =09=09=09=09=09=09Irp->IoStatus.Information=3D0; =09=09=09=09=09}*/ =09=09=09//EFFETS DE BORD !!!!! =09=09=09if (irps->MajorFunction=3D=3DIRP_MJ_PNP) =09=09=09{ =09=09=09=09KdPrintf(("IRP_MJ_PNP\n")); =09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09switch (irps->MinorFunction) { =09=09=09=09case IRP_MN_QUERY_REMOVE_DEVICE: =09=09=09=09=09KdPrintf((" IRP_MN_QUERY_REMOVE_DEVICE\n")); =09=09=09=09=09break; =09=09=09=09case IRP_MN_SURPRISE_REMOVAL: =09=09=09=09=09KdPrintf((" IRP_MN_SURPRISE_REMOVAL\n")); =09=09=09=09=09break; =09=09=09=09case IRP_MN_REMOVE_DEVICE: =09=09=09=09=09KdPrintf((" IRP_MN_REMOVE_DEVICE\n")); =09=09=09=09=09break; =09=09=09=09case IRP_MN_CANCEL_REMOVE_DEVICE: =09=09=09=09=09KdPrintf((" IRP_MN_CANCEL_REMOVE_DEVICE\n")); =09=09=09=09=09break; =09=09=09=09case IRP_MN_QUERY_DEVICE_RELATIONS: =09=09=09=09=09KdPrintf((" IRP_MN_QUERY_DEVICE_RELATIONS\n")); =09=09=09=09=09status =3D STATUS_INVALID_PARAMETER; =09=09=09=09=09break; =09=09=09=09default: =09=09=09=09=09KdPrintf((" other minnor function %d\n", irps->MinorFuncti= on)); =09=09=09=09=09break; =09=09=09=09=09//IoSkipCurrentIrpStackLocation(Irp); =09=09=09=09=09//status =3D IoCallDriver(Vcb->TargetDeviceObject, Irp); =09=09=09=09} =09=09=09=09Irp->IoStatus.Status=3Dstatus; =09=09=09=09 =09=09=09=09goto ANC; =09=09=09} =09=09=09if (DeviceObject =3D=3D DiskGlobal.pdiskcd) =09=09=09{ =09=09=09=09KdPrintf(("[CD DISK FAT]\n")); =09=09=09} =09=09=09if (DeviceObject =3D=3D DiskGlobal.pdiskcd) =09=09=09{ =09=09=09=09KdPrintf(("[FILE DISK FAT]\n")); =09=09=09} =09=09=09/////////////////////// =09=09=09if (DeviceObject=3D=3Dg_devcontrol) =09=09=09{ =09=09=09=09PVOID* p=3DNULL; =09=09=09=09KdPrintf(("xxxxxxxx\n")); =09=09=09=09if (irps->FileObject!=3DNULL) =09=09=09=09=09p=3Dirps->FileObject->FsContext2; =09=09=09=09KdPrintfd(("Control VFUM irp %x irps %x context %x\n",Irp,irps,= p)); =09=09=09=09status=3Dcontroldispatch(DeviceObject,Irp,irps); =09=09=09=09Irp->IoStatus.Status=3Dstatus; =09=09=09=09KdPrintfdnotimpl(("Return information AV : %x\n",Irp->IoStatus.= Information)); =09=09=09=09KdPrintfd(("Control VFUM return status %x\n",status)); =09=09=09} #if SUPPORTRAWDISK =09=09=09else =09=09=09if (IsRawDisk(DeviceObject)=3D=3DTRUE) =09=09=09{ =09=09=09=09KdPrintfd (("In RawDisk\n")); =09=09=09=09KeEnterCriticalRegion(); =09=09=09=09status=3Dcontroldiskrawsystem(DeviceObject,Irp,irps); =09=09=09=09KeLeaveCriticalRegion(); =09=09=09=09if (status=3D=3DSTATUS_PENDING) =09=09=09=09=09return status; =09=09=09} #endif =09=09=09else =09=09=09{ =09=09=09=09PPARAMVDF vdf; =09=09=09=09KdPrintf(("[VFUM] Virtual disk\n")); =09=09=09=09vdf=3Dvdf_GetParam(DeviceObject); =09=09=09=09KdPrintfd2(("[VFUM] dispatch_virtualdisk enter : Device:%x Majo= rfunction %d irp %x vdf=3D%x \n",DeviceObject,irps->MajorFunction,vdf)); =09=09=09=09 =09=09=09=09if (vdf!=3DNULL) =09=09=09=09{ =09=09=09=09=09//if ((vdf->used=3D=3DTRUE) && (vdf->parameter=3D=3DTRUE)) =09=09=09=09=09{ =09=09=09=09=09 =09=09=09=09=09=09=09=09PVOID* p=3DNULL; =09=09=09=09=09=09=09=09BOOLEAN MOUNTED=3D((vdf->used=3D=3DTRUE) && (vdf->p= arameter=3D=3DTRUE) && (vdf->dismounting=3D=3DFALSE)); =09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09if (irps->FileObject!=3DNULL) =09=09=09=09=09=09=09=09=09p=3Dirps->FileObject->FsContext2; =09=09=09=09=09=09=09=09//KdPrintfd2(("[VFUM] vfums_control_virtualdisk irp= %x irps %x context %x vdf=3D%x\n",Irp,irps,p,vdf)); =09=09=09=09=09=09=09=09//if ((vdf->used=3D=3DTRUE) && (vdf->parameter=3D= =3DTRUE)) =09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09FsRtlEnterFileSystem(); =09=09=09=09=09=09=09=09=09/*status=3Dccreate(DeviceObject,Irp,irps,irps->F= ileObject); =09=09=09=09=09=09=09=09=09if (status!=3DSTATUS_SUCCESS) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09KdPrintf(("CCReate return status %x\n",status= )); =09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09/*if ((irps->MajorFunction=3D=3DIRP_MJ_CLOSE)) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09status=3DFatDirectClose(NULL,DeviceObject,Irp= ,irps); =09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09/*if ((irps->MajorFunction=3D=3DIRP_MJ_CLOSE)) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09KdPrintfd(("E IRP_MJ_CLOSE\n")); =09=09=09=09=09=09=09=09=09=09IjThreadforclose(vdf,Irp); =09=09=09=09=09=09=09=09=09=09KdPrintfd(("Wait thread\n")); =09=09=09=09=09=09=09=09=09=09status=3DWaitObject(&vdf->eventclose,30); =09=09=09=09=09=09=09=09=09=09KdPrintfd(("WaitObject from IRP_MJ_CLOSE retu= rn status %x\n",status)); =09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ_CLEANUP)) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09PFILE_OBJECT _file; =09=09=09=09=09=09=09=09=09=09PCCB fsc; =09=09=09=09=09=09=09=09=09=09_file=3Dirps->FileObject; =09=09=09=09=09=09=09=09=09=09if (_file=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information=3D0; =09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09fsc=3D(PCCB)_file->FsContext2; =09=09=09=09=09=09=09=09=09=09fsc=3DvdfsValidPointer(vdf,fsc); =09=09=09=09=09=09=09=09=09=09__try =09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09if (_file->FileName.Buffer!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Cleanup FileName %wZ\n",&_fil= e->FileName)); =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09__except (1) =09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Exception KdPrintfd2\n")); =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09if ((fsc!=3DNULL)) =09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (_file->SectionObjectPointe= r !=3D NULL && =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09_file->SectionObjectPointer->D= ataSectionObject !=3D NULL) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//fsc->debug2=3DTRUE; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("FatCleanup Dump = Cache\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc->Fcb!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09CcFlushCache(&fsc->Fcb->= SectionObjectPointers, NULL, 0, NULL); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("FatCleanup Dump = Cache2\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc->Fcb!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09CcPurgeCacheSection(&fsc= ->Fcb->SectionObjectPointers, NULL, 0, FALSE); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("FatCleanup Dump = Cache3\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (issection(DeviceObject)= ) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09CcUninitializeCacheMap(_= file, NULL, NULL);=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("FatCleanup Fin D= ump \n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//fsc->debug2=3DFALSE; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("FatCleanup not m= apping\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09_file->Flags |=3D FO_CLEANUP_C= OMPLETE; =09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_MJ_CLOSE) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09//if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09if (MOUNTED=3D=3DFALSE) =09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09//SI LE LECTEUR EST DEMONTER IL FAUT LI= BERER LE VCB SINON LE LIBERER PLUS TARD POUR QUE LE PROCESSUS =09=09=09=09=09=09=09=09=09=09=09=09//USER CONNAISSE LE PARAM =09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09PCCB fsc=3DNULL; =09=09=09=09=09=09=09=09=09=09=09=09PFILE_OBJECT _file; =09=09=09=09=09=09=09=09=09=09=09=09//KdPrintfd6(("MUST IT CLOSE ABCDEF\n")= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//PCCB fsc; =09=09=09=09=09=09=09=09=09=09=09=09_file=3Dirps->FileObject; =09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09fsc=3D_file->FsContext2; =09=09=09=09=09=09=09=09=09=09=09=09//A METTRE DANS UTH =09=09=09=09=09=09=09=09=09=09=09=09ExAcquireResourceExclusiveLite(&vdf->Re= sourceNextFile, TRUE); =09=09=09=09=09=09=09=09=09=09=09=09fsc=3DvdfsValidPointer(vdf,fsc); =09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09if (fsc!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09PsharevdfsFCB fcb=3Dfsc->Fcb; =09=09=09=09=09=09=09=09=09=09=09=09=09////RemoveEntryList(&fsc->NextFile);= ////EFFET DE BORD 09072017 COMMENT BSOD W10 COMPILER =09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09vdfsDoneCCB(vdf,fsc); =09=09=09=09=09=09=09=09=09=09=09=09=09vdfsFreeFCB(fcb); =09=09=09=09=09=09=09=09=09=09=09=09=09/*RemoveEntryList(&fsc->NextFile); =09=09=09=09=09=09=09=09=09=09=09=09=09vdfsFreeFCB(fsc->Fcb); =09=09=09=09=09=09=09=09=09=09=09=09=09vdfsDoneCCB(vdf,fsc);*/ =09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09_file->FsContext=3DNULL; =09=09=09=09=09=09=09=09=09=09=09=09=09_file->FsContext2=3DNULL; =09=09=09=09=09=09=09=09=09=09=09=09//=09KdPrintfd2(("Ca Bug \n")); =09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09ExReleaseResourceLite(&vdf->ResourceNex= tFile); =09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09if (MOUNTED) =09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _CLOSE)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09PFILE_OBJECT file; =09=09=09=09=09=09=09=09=09=09=09=09=09=09//PCCB fsc; =09=09=09=09=09=09=09=09=09=09=09=09=09=09file=3Dirps->FileObject; =09=09=09=09=09=09=09=09=09=09=09=09=09=09//fsc=3D(PCCB)file->FsContext2; =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("CLOSE\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (file->FileName.Buffer!=3DNULL= )KdPrintfd2(("E CLOSE FileName %wZ \n",&file->FileName)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09//if (file->RelatedFileObject!=3D= NULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09//=09KdPrintfd2(("E CLOSE Relativ= eFileName %wZ \n",&file->RelatedFileObject->FileName.Buffer)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09/*if (fsc->debug2=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Eh mince probl=E9= me XXX4TOF\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Bon XSFDFS44\n"))= ;*/ =09=09=09=09=09=09=09=09=09=09=09=09=09=09//ON VEUX LE METTRE DANS LA LIST2 =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DPushCMD(DeviceObject,= vdf,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_PENDING= ) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 KdPrintf(("irp_mj_close st= atus pending\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _CREATE)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09//ON VEUX LE METTRE DANS LA LIST2 =09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DPushCMD(DeviceObject,vdf= ,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_PENDING) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 KdPrintf(("irp_mj_read status= pending\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _DIRECTORY_CONTROL)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MinorFunction=3D=3DIRP= _MN_NOTIFY_CHANGE_DIRECTORY)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PPARAMVDF vdf; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PCCB fsc; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09ULONG CompletionFilter; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PFILE_OBJECT file; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09BOOLEAN WatchTree; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09file=3Dirps->FileObject; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MN_NOTIFY_CHANG= E_DIRECTORY r=E9pertoire %wZ bt\n",&file->FileName)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09CompletionFilter =3D irps->Par= ameters.NotifyDirectory.CompletionFilter; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09WatchTree =3D (irps->Flags& S= L_WATCH_TREE)=3D=3DSL_WATCH_TREE ; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09vdf=3D(PPARAMVDF)DeviceObject-= >DeviceExtension; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MN_NOTIFY_CHANG= E_DIRECTORY Before Context %x\n",file->FsContext2)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlNotifyFullChangeDirectory= ( vdf->NotifySync, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09&vdf->DirNotifyList, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09file->FsContext2, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09(PSTRING)&file->FileName= , =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09WatchTree, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FALSE, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09CompletionFilter, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09NULL, =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09NULL ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MN_NOTIFY_CHANG= E_DIRECTORY After Context %x\n",file->FsContext2)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc=3D(PCCB)file->FsContext2; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc=3DvdfsValidPointer(vdf,fsc= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc->evchgdirectory=3DTRUE; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MN_NOTIFY_CH= ANGE_DIRECTORY Not found fsc\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Status=3DSTATUS_= SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_PENDING; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto gty; =09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _WRITE) || (irps->MajorFunction=3D=3DIRP_MJ_SET_INFORMATION)) //MODE MTHREA= D uniqument =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PCOM2 ocom=3DNULL; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PVOID Buffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DI= RP_MJ_WRITE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->Parameters.Write.= Length=3D=3D0) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" writelengt= h NULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Informatio= n=3D0; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" use MdlAd= dress\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer =3D MmGetSystemAd= dressForMdlSafe(Irp->MdlAddress, NormalPagePriority); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} else { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" use UserB= uffer\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer =3D Irp->UserBuff= er; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09}=09=09=09=09=09=09=09=09=09= =09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer=3DIrp->AssociatedIrp= .SystemBuffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DPre_PushCMD(DeviceObj= ect,vdf,Irp,&ocom); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09//ON VEUX LE METTRE DANS LA LIST2 =09=09=09=09=09=09=09=09=09=09=09=09=09=09//status=3DPushCMD(DeviceObject,v= df,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_PENDING) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09copypsp(&ocom->in_data,Buffer,= irps->Parameters.Write.Length); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09_i_p(vdf,ocom); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 KdPrintf(("irp_mj_read status= pending\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09//if ((irps->MajorFunction=3D=3DIRP_= MJ_READ) || (irps->MajorFunction=3D=3DIRP_MJ_WRITE)) =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _WRITE) || (irps->MajorFunction=3D=3DIRP_MJ_SET_INFORMATION)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09PFILE_OBJECT file; =09=09=09=09=09=09=09=09=09=09=09=09=09=09PVOID Buffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("WRITE\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_= MJ_WRITE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd(("E IRP_MJ_WRITE\n")= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_= MJ_SET_INFORMATION) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd(("E IRP_MJ_SET_INFOR= MATION\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09file=3Dirps->FileObject; =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (file=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("E Write File=3D= =3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_INVALID_PARAME= TER; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_= MJ_WRITE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->Parameters.Write.Len= gth=3D=3D0) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" writelength N= ULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information= =3D0; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" use MdlAddre= ss\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer =3D MmGetSystemAddre= ssForMdlSafe(Irp->MdlAddress, NormalPagePriority); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} else { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" use UserBuff= er\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer =3D Irp->UserBuffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IK SetInformation %= x\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Buffer=3DIrp->AssociatedIrp.Sy= stemBuffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (file!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09DWORD *dw=3D(DWORD*)Buffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PCCB fsc=3D(PCCB)file->FsConte= xt2; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[INT] Write Offse= t %x Data %x\n",irps->Parameters.Write.ByteOffset.LowPart,*dw)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc=3DvdfsValidPointer(vdf,fsc= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_INVALID_HAN= DLE; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc->debug1=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2((" mettre des sp= in\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc->debug1=3DTRUE; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc->bufferwrite!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09ExFreePool(fsc->bufferwrite= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09fsc->bufferwrite=3DExAllocateP= ool(NonPagedPool,fsc->sizewrite=3Dirps->Parameters.Write.Length); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fsc->bufferwrite!=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09RtlCopyMemory(fsc->bufferwr= ite,Buffer,fsc->sizewrite); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Insufficent re= ssource\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_INSUFFICIEN= T_RESOURCES; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("File=3D=3DNULL\n"= )); =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _READ)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09PFILE_OBJECT fileObject =3D irps-= >FileObject; =09=09=09=09=09=09=09=09=09=09=09=09=09=09ULONG Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09PMDL mdl; =09=09=09=09=09=09=09=09=09=09=09=09=09=09if ((vdf->used=3D=3DTRUE) && (vdf= ->parameter=3D=3DTRUE)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//DISK INUTILISER OU DISCONNEC= TED =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_DEVICE_NOT_REA= DY; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_= MJ_READ) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Length =3D irps->Parameters.Re= ad.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Length =3D irps->Parameters.Wr= ite.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Int IRP_MJ_READ Offs= et %x Length %x\n",irps->Parameters.Read.ByteOffset.LowPart,Length)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->Parameters.Read.Length= =3D=3D0) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information= =3D0; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MinorFunction =3D=3D IR= P_MN_COMPLETE) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->MdlAddress =3D NULL; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("IRP_MN_COMPLETE")= ); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status =3D STATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop;=09=09=09=09= =09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09} //////BEGIN Line incriminating BUG1//////////// =09=09=09=09=09=09=09=09=09=09=09=09=09=09if ((fileObject =3D=3D NULL)&& (I= rp->MdlAddress !=3D NULL)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//effet de bord 140720174 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09PVOID currentAddress; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] Re= ads by file=3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09/*currentAddress =3D MmGetSyst= emAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (currentAddress =3D=3D NULL= ) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] = currentAddress=3DNULL PAS NORMAL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3D STATUS_INSUFFICI= ENT_RESOURCES; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09// here we could return the bo= otsector. If we don't have one =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09// the requested read lenght m= ust be returned as requested =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information =3D = irps->Parameters.Read.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] Off= set:%d Reads finished with length:%d\n",irps->Parameters.Read.ByteOffset.L= owPart, Irp->IoStatus.Information)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status =3D STATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} //////END Line incriminating BUG1//////////// =09=09=09=09=09=09=09=09=09=09=09=09=09=09////A REFLECHIR =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (fileObject =3D=3D NULL) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("[DrvDispatch] fi= leObject =3D=3D NULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status =3D STATUS_INVALID_DEVI= CE_REQUEST; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop;; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09///// =09=09=09=09=09=09=09=09=09=09=09=09=09=09/*mdl =3D IoAllocateMdl(Irp->User= Buffer, irps->Parameters.QueryDirectory.Length, FALSE, FALSE, Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09__try {=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09MmProbeAndLockPages(Irp-= >MdlAddress, Irp->RequestorMode, IoWriteAccess);=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} __except (EXCEPTION_EX= ECUTE_HANDLER)=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MJ_READ o= r IRP_MJ_WRITE MmProveAndLockPages error\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09IoFreeMdl(Irp->MdlAddres= s);=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->MdlAddress =3D NULL= ;=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3D STATUS_INSUFFI= CIENT_RESOURCES;=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} */ =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Int IRP_MJ_READ = Irp->MdlAddress=3D=3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DAllocateMdl(Irp,irps-= >Parameters.Read.Length); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Failure Get MD= L\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("OK allocate MD= L\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Irp->MdlAdress!= =3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09//ON VEUX LE METTRE DANS LA LIST2 =09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DPushCMD(DeviceObject,vdf= ,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_PENDING) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 KdPrintf(("irp_mj_read status= pending\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09//status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _QUERY_SECURITY)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09ULONG bufferLength =3D irps->Para= meters.QuerySecurity.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09//BSOD RISK !!!! =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->UserBuffer !=3D NULL && = bufferLength > 0) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09// make a MDL for UserBuffer that= can be used later on another thread context=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress =3D=3D NUL= L) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status =3D AllocateMdl(Irp,= bufferLength); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("IRP_MJ_QUERY_S= ECURITY allocate error mdl %x\n",status)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) { =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09// =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("IRP_MJ_QUERY_SECURIT= Y ALLOCATE MDL OK with size %d!!!!!\n",bufferLength)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09/////// =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _SET_SECURITY)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("IRP_MJ_SET_SECURITY\= n")); =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ= _DEVICE_CONTROL)) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09ULONG Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09PMDL mdl; =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->Parameters.DeviceIoCont= rol.IoControlCode=3D=3DIOCTL_REDIR_QUERY_PATH) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Length =3D irps->Parameters.Re= ad.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Int IRP_MJ_DEVICE= _CONTROL Offset %x Length %x\n",irps->Parameters.Read.ByteOffset.LowPart,Le= ngth)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09/*mdl =3D IoAllocateMdl(Irp->U= serBuffer, irps->Parameters.QueryDirectory.Length, FALSE, FALSE, Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09__try {=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09MmProbeAndLockPages(I= rp->MdlAddress, Irp->RequestorMode, IoWriteAccess);=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} __except (EXCEPTION= _EXECUTE_HANDLER)=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("IRP_MJ_REA= D or IRP_MJ_WRITE MmProveAndLockPages error\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09IoFreeMdl(Irp->MdlAdd= ress);=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->MdlAddress =3D N= ULL;=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3D STATUS_INSU= FFICIENT_RESOURCES;=20 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} */ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Int IRP_MJ_DEV= ICE_CONTROL Irp->MdlAddress=3D=3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DAllocateMdl(Irp,si= zeof (QUERY_PATH_RESPONSE)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MajorFunction=3D=3DIRP_MJ_= DIRECTORY_CONTROL) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (irps->MinorFunction=3D=3DIRP_= MN_QUERY_DIRECTORY) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09UCHAR* Buffer; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09int cdebug; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09UCHAR cdebug1; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09ULONG Length =3D irps->Paramet= ers.QueryDirectory.Length; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09/*est-ce*/ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (Irp->MdlAddress=3D=3DNULL) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintf(("Int IRP_MN_QUERY= _DIRECTORY Irp->MdlAddress=3D=3DNULL\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DAllocateMdl(Irp,ir= ps->Parameters.QueryDirectory.Length); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09/*Buffer=3DFatMapUserBuffer(Ir= p); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//Buffer=3DNULL; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09for (cdebug =3D 0 ; cdebug < L= ength; cdebug++) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09cdebug1=3DBuffer[cdebug]; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09//ON VEUX LE METTRE DANS LA LI= ST2 =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (modevdf2(vdf)=3D=3DTRUE) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09status=3DPushCMD(DeviceObject,= vdf,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_PENDING= ) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09 KdPrintf(("irp_mj_read sta= tus pending\n")); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09if (!NT_SUCCESS(status)) =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09goto trierrorop; =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09//status=3DSTATUS_SUCCESS; =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09//KIRQL oldirql; =09=09=09=09=09=09=09=09=09=09=09=09=09//MUTEX_P(vdf->lock,&oldirql); =09=09=09=09=09=09=09=09=09=09=09=09=09//status=3Dvdfdispatch(DeviceObject,= Irp,irps); =09=09=09=09=09=09=09=09=09=09=09=09=09//PPARAMVDF vd=3D(PPARAMVD)DeviceObj= ect->DeviceExtension; =09=09=09=09=09=09=09=09=09=09=09=09=09IjThread(vdf,Irp); =09=09=09=09=09=09=09=09=09=09=09=09=09//Irp->IoStatus.Status=3DSTATUS_PEND= ING; =09=09=09=09=09=09=09=09=09=09=09=09=09status=3DSTATUS_PENDING; =09=09=09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09trierrorop:; =09=09=09=09=09=09=09=09=09=09=09=09=09if (status!=3DSTATUS_PENDING) =09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09if (status=3D=3DSTATUS_NOT_IMPLEM= ENTED) =09=09=09=09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfdnotimpl(("[system] No= t Implemented Majorfunction:%x MinorFunction:%x\n",irps->MajorFunction,irps= ->MinorFunction)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=09KdPrintfd2(("Error before pushthr= ead %x\n",status)); =09=09=09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Status=3Dstatus; =09=09=09=09=09=09=09=09=09=09=09=09=09=09IoCompleteRequest(Irp, IO_NO_INCR= EMENT);=20 =09=09=09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09=09=09=20 =09=09=09=09=09=09=09//trierror: =09=09=09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09=09=09=09return status; =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09else =09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09KdPrintfd(("DISK UNLOADED !!! FORBIDDEN R= EQUEST !!!!\n")); =09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Status=3Dstatus=3DSTATUS_DEV= ICE_REMOVED; =09=09=09=09=09=09=09=09=09=09=09if ((irps->MajorFunction=3D=3DIRP_MJ_CLOSE= ) =09=09=09=09=09=09=09=09=09=09=09=09|| =09=09=09=09=09=09=09=09=09=09=09=09(irps->MajorFunction=3D=3DIRP_MJ_CLEANU= P) =09=09=09=09=09=09=09=09=09=09=09=09) =09=09=09=09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09=09=09=09=09//LE CLOSE POSE PROBLEME DANS FILE PCCB= !!!!! =09=09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Status=3Dstatus=3DSTATUS_= SUCCESS; =09=09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09=09=09Irp->IoStatus.Information=3D0; =09=09=09=09=09=09=09=09=09=09=09FsRtlExitFileSystem(); =09=09=09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09=09//MUTEX_V(vdf->lock,oldirql); =09=09=09=09=09=09=09=09} =09=09=09=09=09=09=09=09 =09=09=09=09=09=09=09=09/*else=20 =09=09=09=09=09=09=09=09{ =09=09=09=09=09=09=09=09=09KdPrintfd(("[VFUM] dispatch_virtualdisk : Device= :%x Majorfunction %d irp %x not configured or not initialized %d %d \n",Dev= iceObject,irps->MajorFunction,Irp,vdf->used,vdf->parameter)); =09=09=09=09=09=09=09=09=09status=3DSTATUS_DEVICE_NOT_READY; =09=09=09=09=09=09=09=09}*/ =09=09=09=09=09=09} =09=09=09=09=09=09/*else =09=09=09=09=09=09{ =09=09=09=09=09=09=09KdPrintfd(("DISK UNLOADED !!! FORBIDDEN REQUEST !!!!\= n")); =09=09=09=09=09=09=09Irp->IoStatus.Status=3Dstatus=3DSTATUS_DEVICE_REMOVED; =09=09=09=09=09=09=09Irp->IoStatus.Information=3D0; =09=09=09=09=09=09}*/ =09=09=09=09} =09=09=09=09else =09=09=09=09{ =09=09=09=09=09KdPrintfd(("Handle not found\n")); =09=09=09=09=09status=3DSTATUS_INVALID_HANDLE; =09=09=09=09} =09=09=09} =09=09=09//INCRIMINATION BUG ????? =09=09=09//Irp->IoStatus.Status=3Dstatus; ANC:;=09 =09if (status=3D=3DSTATUS_NOT_IMPLEMENTED) =09{ =09=09=09=09=09=09=09=09KdPrintfdnotimpl(("[systemg] Not Implemented Majorf= unction:%x MinorFunction:%x\n",irps->MajorFunction,irps->MinorFunction)); =09} =09KdPrintfdnotimpl(("Return information : %x\n",Irp->IoStatus.Information)= ); =09IoCompleteRequest(Irp, IO_NO_INCREMENT);=20 gty: =09return status; =09} =09else =09=09return STATUS_SUCCESS; }
  Message 2 of 5  
14 Jul 17 15:00
Slava Imameev
xxxxxx@hotmail.com
Join Date: 13 Sep 2013
Posts To This List: 221
Why BSOD ?????

1. Provide !analyze -v output 2. Cleanup the mess in the copy-pasted code. It is barely readable in the online version because of spaces or tabs transformation to =09=09=09=09=09=09=09=09=09 .
  Message 3 of 5  
17 Jul 17 12:14
Sivaller
xxxxxx@gmail.com
Join Date: 13 Jul 2017
Posts To This List: 9
Why BSOD ?????

Information windbg : STACK_TEXT: ffffd000`acf8dea8 fffff803`3cb5c5a9 : 00000000`0000000a 00000000`0000004c 00000000`00000002 00000000`00000001 : nt!KeBugCheckEx ffffd000`acf8deb0 fffff803`3cb5adc8 : 00000000`00000000 ffffe000`e15c6910 ffffe000`e3ec7780 fffff801`2f72f34b : nt!KiBugCheckDispatch+0x69 ffffd000`acf8dff0 fffff803`3cacb7d4 : ffffe000`e2d997d0 00000000`00000000 ffffe000`e1443000 ffffe000`e1443070 : nt!KiPageFault+0x248 ffffd000`acf8e180 fffff803`3cee8bf3 : fffff803`3cd44440 00000000`00000000 ffffe000`e258e080 ffffe000`e1443000 : nt!IopMountInitializeVpb+0x54 ffffd000`acf8e1b0 fffff803`3cacb974 : ffffe000`e1443070 ffffe000`e23323b0 ffffe000`e1443070 fffff803`3cea7a66 : nt!IopMountVolume+0x46b ffffd000`acf8e430 fffff803`3ce31367 : 00000000`00000025 00000000`00000000 ffffd000`acf8e790 00000000`00000000 : nt!IopCheckVpbMounted+0x154 ffffd000`acf8e480 fffff803`3ce2c9d1 : ffffc000`2ca2a638 ffffc000`2ca2a638 ffffd000`acf8e790 ffffe000`e1443040 : nt!IopParseDevice+0x4a7 ffffd000`acf8e690 fffff803`3ce8b38c : ffffe000`e1c73201 ffffd000`acf8e8b8 ffffe000`00000040 ffffe000`e00a4f20 : nt!ObpLookupObjectName+0x711 ffffd000`acf8e830 fffff803`3ce8769c : ffffe000`00000001 ffffe000`e23323b0 00000000`003ceb40 00000000`003ce290 : nt!ObOpenObjectByName+0x1ec ffffd000`acf8e960 fffff803`3ce872e9 : 00000000`003ce278 00000000`00000000 00000000`003ceb40 00000000`003ce290 : nt!IopCreateFile+0x38c ffffd000`acf8ea00 fffff803`3cb5c263 : fffff6fb`40001b98 00000000`00000000 00000000`00000000 00000000`00000000 : nt!NtCreateFile+0x79 ffffd000`acf8ea90 00007ff9`a57e3a9a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13 00000000`003ce208 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ff9`a57e3a9a STACK_COMMAND: kb THREAD_SHA1_HASH_MOD_FUNC: b137d77bc1f8deefd04b4562dfe551e52af3da5a THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 27ae7d2d2794d88ca82b2572a447cec3b99430b0 THREAD_SHA1_HASH_MOD: dc844b1b94baa204d070855e43bbbd27eee98b94 FOLLOWUP_IP: nt!IopMountInitializeVpb+54 fffff803`3cacb7d4 88514c mov byte ptr [rcx+4Ch],dl FAULT_INSTR_CODE: 484c5188 SYMBOL_STACK_INDEX: 3 SYMBOL_NAME: nt!IopMountInitializeVpb+54
  Message 4 of 5  
17 Jul 17 12:49
Sivaller
xxxxxx@gmail.com
Join Date: 13 Jul 2017
Posts To This List: 9
Why BSOD ?????

Here debuggage : IRQL_NOT_LESS_OR_EQUAL (a) An attempt was made to access a pageable (or completely invalid) address at an interrupt request level (IRQL) that is too high. This is usually caused by drivers using improper addresses. If a kernel debugger is available get the stack backtrace. Arguments: Arg1: 000000000000004c, memory referenced Arg2: 0000000000000002, IRQL Arg3: 0000000000000001, bitfield : bit 0 : value 0 = read operation, 1 = write operation bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status) Arg4: fffff80148ec97d4, address which referenced memory Debugging Details: ------------------ DUMP_CLASS: 1 DUMP_QUALIFIER: 401 BUILD_VERSION_STRING: 10240.16384.amd64fre.th1.150709-1700 SYSTEM_MANUFACTURER: innotek GmbH VIRTUAL_MACHINE: VirtualBox SYSTEM_PRODUCT_NAME: VirtualBox SYSTEM_VERSION: 1.2 BIOS_VENDOR: innotek GmbH BIOS_VERSION: VirtualBox BIOS_DATE: 12/01/2006 BASEBOARD_MANUFACTURER: Oracle Corporation BASEBOARD_PRODUCT: VirtualBox BASEBOARD_VERSION: 1.2 DUMP_TYPE: 1 BUGCHECK_P1: 4c BUGCHECK_P2: 2 BUGCHECK_P3: 1 BUGCHECK_P4: fffff80148ec97d4 WRITE_ADDRESS: 000000000000004c CURRENT_IRQL: 2 FAULTING_IP: nt!IopMountInitializeVpb+54 fffff801`48ec97d4 88514c mov byte ptr [rcx+4Ch],dl CPU_COUNT: 2 CPU_MHZ: fa0 CPU_VENDOR: AuthenticAMD CPU_FAMILY: 15 CPU_MODEL: 2 CPU_STEPPING: 0 DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT BUGCHECK_STR: AV PROCESS_NAME: samplefatfilesystem.exe ANALYSIS_SESSION_HOST: DESKTOP-J0KVJ3N ANALYSIS_SESSION_TIME: 07-17-2017 18:47:12.0853 ANALYSIS_VERSION: 10.0.15063.468 amd64fre TRAP_FRAME: ffffd001e0993ff0 -- (.trap 0xffffd001e0993ff0) NOTE: The trap frame does not contain all registers. Some register values may be zeroed or incorrect. rax=0000000000000000 rbx=0000000000000000 rcx=0000000000000000 rdx=0000000000000002 rsi=0000000000000000 rdi=0000000000000000 rip=fffff80148ec97d4 rsp=ffffd001e0994180 rbp=ffffe00140c4e070 r8=0000000000000000 r9=ffffd001e1d80880 r10=fffff80192c85b80 r11=ffffd001e0994180 r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 iopl=0 nv up ei pl nz na pe nc nt!IopMountInitializeVpb+0x54: fffff801`48ec97d4 88514c mov byte ptr [rcx+4Ch],dl ds:00000000`0000004c=?? Resetting default scope LAST_CONTROL_TRANSFER: from fffff80148f5a5a9 to fffff80148f4fc20 STACK_TEXT: ffffd001`e0993ea8 fffff801`48f5a5a9 : 00000000`0000000a 00000000`0000004c 00000000`00000002 00000000`00000001 : nt!KeBugCheckEx ffffd001`e0993eb0 fffff801`48f58dc8 : 00000000`00000000 ffffe001`41ed1df0 ffffe001`41cb2590 fffff801`92c8f34b : nt!KiBugCheckDispatch+0x69 ffffd001`e0993ff0 fffff801`48ec97d4 : ffffe001`40679e40 00000000`00000000 ffffe001`40c4e000 ffffe001`40c4e070 : nt!KiPageFault+0x248 ffffd001`e0994180 fffff801`492e6bf3 : fffff801`49142440 00000000`00000000 ffffe001`40690080 ffffe001`40c4e000 : nt!IopMountInitializeVpb+0x54 ffffd001`e09941b0 fffff801`48ec9974 : ffffe001`40c4e070 ffffe001`41c59b10 ffffe001`40c4e070 fffff801`492a5a66 : nt!IopMountVolume+0x46b ffffd001`e0994430 fffff801`4922f367 : 00000000`00000025 00000000`00000000 ffffd001`e0994790 00000000`00000000 : nt!IopCheckVpbMounted+0x154 ffffd001`e0994480 fffff801`4922a9d1 : ffffc000`86e2a638 ffffc000`86e2a638 ffffd001`e0994790 ffffe001`40c4e040 : nt!IopParseDevice+0x4a7 ffffd001`e0994690 fffff801`4928938c : ffffe001`41eff001 ffffd001`e09948b8 ffffe001`00000040 ffffe001`4027bf20 : nt!ObpLookupObjectName+0x711 ffffd001`e0994830 fffff801`4928569c : ffffe001`00000001 ffffe001`41c59b10 00000000`00f2e9b0 00000000`00f2e100 : nt!ObOpenObjectByName+0x1ec ffffd001`e0994960 fffff801`492852e9 : 00000000`00f2e0e8 00000000`00000000 00000000`00f2e9b0 00000000`00f2e100 : nt!IopCreateFile+0x38c ffffd001`e0994a00 fffff801`48f5a263 : fffff6fb`40001b78 00000000`00000000 00000000`00000000 00000000`00000000 : nt!NtCreateFile+0x79 ffffd001`e0994a90 00007ff9`a10f3a9a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13 00000000`00f2e078 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ff9`a10f3a9a STACK_COMMAND: kb THREAD_SHA1_HASH_MOD_FUNC: b137d77bc1f8deefd04b4562dfe551e52af3da5a THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 27ae7d2d2794d88ca82b2572a447cec3b99430b0 THREAD_SHA1_HASH_MOD: dc844b1b94baa204d070855e43bbbd27eee98b94 FOLLOWUP_IP: nt!IopMountInitializeVpb+54 fffff801`48ec97d4 88514c mov byte ptr [rcx+4Ch],dl FAULT_INSTR_CODE: 484c5188 SYMBOL_STACK_INDEX: 3 SYMBOL_NAME: nt!IopMountInitializeVpb+54 FOLLOWUP_NAME: MachineOwner MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe DEBUG_FLR_IMAGE_TIMESTAMP: 559f3c1a BUCKET_ID_FUNC_OFFSET: 54 FAILURE_BUCKET_ID: AV_nt!IopMountInitializeVpb BUCKET_ID: AV_nt!IopMountInitializeVpb PRIMARY_PROBLEM_CLASS: AV_nt!IopMountInitializeVpb TARGET_TIME: 2017-07-17T16:45:45.000Z OSBUILD: 10240 OSSERVICEPACK: 0 SERVICEPACK_NUMBER: 0 OS_REVISION: 0 SUITE_MASK: 272 PRODUCT_TYPE: 1 OSPLATFORM_TYPE: x64 OSNAME: Windows 10 OSEDITION: Windows 10 WinNt TerminalServer SingleUserTS OS_LOCALE: USER_LCID: 0 OSBUILD_TIMESTAMP: 2015-07-10 05:29:30 BUILDDATESTAMP_STR: 150709-1700 BUILDLAB_STR: th1 BUILDOSVER_STR: 10.0.10240.16384.amd64fre.th1.150709-1700 ANALYSIS_SESSION_ELAPSED_TIME: 6f7 ANALYSIS_SOURCE: KM FAILURE_ID_HASH_STRING: km:av_nt!iopmountinitializevpb FAILURE_ID_HASH: {b00a9f3a-eb89-6a85-c75f-b86adbc50a6f} Followup: MachineOwner
  Message 5 of 5  
17 Jul 17 17:01
Sivaller
xxxxxx@gmail.com
Join Date: 13 Jul 2017
Posts To This List: 9
Why BSOD ?????

I'am novice in kernel driver, But apparatus i think than Windows does not like the return of STATUS_PENDING in ioctl function IRP_MN_MOUNT_VOLUME. I'am worked this IRP in the other thread , It returns for the moment STATUS_UNRECOGNIZED_VOLUME.
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntfsd list to be able to post.

All times are GMT -5. The time now is 16:45.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license