| 5477 | } |
| 5478 | |
| 5479 | BOOL |
| 5480 | Ext2RemoveDosSymLink(CHAR drvChar) |
| 5481 | { |
| 5482 | EXT2_MOUNT_POINT E2MP; |
| 5483 | NT::NTSTATUS status; |
| 5484 | HANDLE handle = NULL; |
| 5485 | NT::IO_STATUS_BLOCK iosb; |
| 5486 | |
| 5487 | Ext2SymLinkRemoval(drvChar); |
| 5488 | |
| 5489 | memset(&E2MP, 0, sizeof(EXT2_MOUNT_POINT)); |
| 5490 | E2MP.Magic = EXT2_APP_MOUNTPOINT_MAGIC; |
| 5491 | E2MP.Command = APP_CMD_DEL_DOS_SYMLINK; |
| 5492 | E2MP.Link[0] = (USHORT) drvChar; |
| 5493 | |
| 5494 | status = Ext2Open("\\DosDevices\\Ext2Fsd", |
| 5495 | &handle, EXT2_DESIRED_ACCESS); |
| 5496 | if (!NT_SUCCESS(status)) { |
| 5497 | goto errorout; |
| 5498 | } |
| 5499 | |
| 5500 | status = NT::ZwDeviceIoControlFile( |
| 5501 | handle, NULL, NULL, NULL, &iosb, |
| 5502 | IOCTL_APP_MOUNT_POINT, |
| 5503 | &E2MP, sizeof(EXT2_MOUNT_POINT), |
| 5504 | &E2MP, sizeof(EXT2_MOUNT_POINT) |
| 5505 | ); |
| 5506 | |
| 5507 | errorout: |
| 5508 | |
| 5509 | Ext2Close(&handle); |
| 5510 | |
| 5511 | return NT_SUCCESS(status); |
| 5512 | } |
no test coverage detected