Index: drivers/filesystems/fastfat/create.c =================================================================== --- drivers/filesystems/fastfat/create.c (révision 41362) +++ drivers/filesystems/fastfat/create.c (copie de travail) @@ -25,7 +25,7 @@ /* INCLUDES *****************************************************************/ -#define NDEBUG +//#define NDEBUG #include "vfat.h" /* FUNCTIONS *****************************************************************/ @@ -84,7 +84,7 @@ NameU->MaximumLength += Length; } NameU->Buffer[NameU->Length / sizeof(WCHAR)] = 0; - DPRINT("'%wZ'\n", NameU); + //DPRINT("'%wZ'\n", NameU); } NTSTATUS @@ -522,7 +522,12 @@ return(STATUS_OBJECT_NAME_INVALID); } } - if (FileObject->RelatedFileObject && PathNameU.Buffer[0] == L'\\') + // FIXME: JMG + DPRINT ("fat create: test PathNameU.Buffer pointer %p PathNameU.Length %d\n", + PathNameU.Buffer, PathNameU.Length); + DPRINT ("fat create: test FileObject->RelatedFileObject pointer %p \n", + FileObject->RelatedFileObject); + if (FileObject->RelatedFileObject && PathNameU.Length >= sizeof(WCHAR) && PathNameU.Buffer[0] == L'\\') { return(STATUS_OBJECT_NAME_INVALID); } @@ -540,6 +545,7 @@ */ if (Status == STATUS_OBJECT_PATH_NOT_FOUND || Status == STATUS_INVALID_PARAMETER || + //ERROR_PATH_NOT_FOUND Status == STATUS_DELETE_PENDING) { if (ParentFcb) @@ -789,6 +795,7 @@ IrpContext->Irp->IoStatus.Information = 0; ExAcquireResourceExclusiveLite (&IrpContext->DeviceExt->DirResource, TRUE); Status = VfatCreateFile (IrpContext->DeviceObject, IrpContext->Irp); + DPRINT ("VfatCreate:Status %lx\n", Status); ExReleaseResourceLite (&IrpContext->DeviceExt->DirResource); IrpContext->Irp->IoStatus.Status = Status;