660 |
case 13: /* FileDispositionInformation */ |
case 13: /* FileDispositionInformation */ |
661 |
|
|
662 |
//unimpl("IRP Set File Information class: FileDispositionInformation\n"); |
//unimpl("IRP Set File Information class: FileDispositionInformation\n"); |
663 |
// in_uint32_le(in, delete_on_close); |
|
664 |
|
//in_uint32_le(in, delete_on_close); |
665 |
// disk_close(handle); |
// disk_close(handle); |
666 |
unlink(pfinfo->path); |
if ((pfinfo->flags_and_attributes & FILE_DIRECTORY_FILE)) // remove a directory |
667 |
|
{ |
668 |
|
if (rmdir(pfinfo->path) < 0) |
669 |
|
return STATUS_ACCESS_DENIED; |
670 |
|
} |
671 |
|
else if (unlink(pfinfo->path) < 0) // unlink a file |
672 |
|
return STATUS_ACCESS_DENIED; |
673 |
|
|
674 |
break; |
break; |
675 |
|
|
676 |
case 19: /* FileAllocationInformation */ |
case 19: /* FileAllocationInformation */ |