| 859 | |
| 860 | |
| 861 | void CExt2MgrDlg::OnChangeProperty() |
| 862 | { |
| 863 | CExt2Attribute EA; |
| 864 | |
| 865 | PEXT2_VOLUME_PROPERTY3 EVP = NULL; |
| 866 | |
| 867 | PEXT2_VOLUME volume = NULL; |
| 868 | PEXT2_CDROM cdrom = NULL; |
| 869 | |
| 870 | if (m_bFocusVolume) { |
| 871 | if (m_type == EXT2_VOLUME_MAGIC) { |
| 872 | volume = (PEXT2_VOLUME) m_sdev; |
| 873 | EVP = &volume->EVP; |
| 874 | } else if (m_type == EXT2_CDROM_DEVICE_MAGIC) { |
| 875 | cdrom = (PEXT2_CDROM) m_sdev; |
| 876 | EVP = &cdrom->EVP; |
| 877 | } |
| 878 | } else { |
| 879 | if (m_type == EXT2_PART_MAGIC) { |
| 880 | PEXT2_PARTITION part = (PEXT2_PARTITION) m_sdev; |
| 881 | volume = part->Volume; |
| 882 | EVP = &volume->EVP; |
| 883 | } else if (m_type == EXT2_CDROM_VOLUME_MAGIC || |
| 884 | m_type == EXT2_CDROM_DEVICE_MAGIC ) { |
| 885 | cdrom = (PEXT2_CDROM) m_sdev; |
| 886 | EVP = &cdrom->EVP; |
| 887 | } |
| 888 | } |
| 889 | |
| 890 | if (EVP) { |
| 891 | |
| 892 | NT::NTSTATUS status; |
| 893 | HANDLE Handle = NULL; |
| 894 | CString s; |
| 895 | |
| 896 | EA.m_EVP = EVP; |
| 897 | if (volume) { |
| 898 | if (volume->Part) |
| 899 | EA.m_DevName = volume->Part->Name; |
| 900 | else |
| 901 | EA.m_DevName = volume->Name; |
| 902 | } else { |
| 903 | EA.m_bCdrom = TRUE; |
| 904 | EA.m_DevName = cdrom->Name; |
| 905 | } |
| 906 | |
| 907 | status = Ext2Open(EA.m_DevName.GetBuffer(EA.m_DevName.GetLength()), |
| 908 | &Handle, EXT2_DESIRED_ACCESS); |
| 909 | |
| 910 | if (!NT_SUCCESS(status)) { |
| 911 | |
| 912 | s.Format("Ext2Fsd service isn't started.\n"); |
| 913 | AfxMessageBox(s, MB_OK | MB_ICONSTOP); |
| 914 | |
| 915 | } else { |
| 916 | |
| 917 | if (!Ext2QueryExt2Property(Handle, EVP)) { |
| 918 | Ext2Close(&Handle); |
nothing calls this directly
no test coverage detected