| 2042 | } |
| 2043 | |
| 2044 | ULONGLONG |
| 2045 | Ext2QueryVolumeDrvLetters(PEXT2_VOLUME Volume) |
| 2046 | { |
| 2047 | ULONGLONG letters = 0; |
| 2048 | int i; |
| 2049 | |
| 2050 | UCHAR drvChar = Ext2QueryMountPoint(Volume->Name); |
| 2051 | if (drvChar) { |
| 2052 | letters |= (((ULONGLONG) 1) << (drvChar - 'A')); |
| 2053 | } |
| 2054 | |
| 2055 | if (!Volume->Extent) { |
| 2056 | goto errorout; |
| 2057 | } |
| 2058 | |
| 2059 | /* checking the digits ltters */ |
| 2060 | for (i=0; i < 10; i++) { |
| 2061 | if (drvDigits[i].bUsed && drvDigits[i].Extent) { |
| 2062 | if (Ext2CompareExtents(drvDigits[i].Extent, Volume->Extent)) { |
| 2063 | letters |= (((ULONGLONG) 1) << (32 + i)); |
| 2064 | if (drvChar != drvDigits[i].Letter) { |
| 2065 | drvDigits[i].bTemporary = TRUE; |
| 2066 | } |
| 2067 | } |
| 2068 | } |
| 2069 | } |
| 2070 | |
| 2071 | for (i=0; i <26; i++) { |
| 2072 | if (drvLetters[i].bUsed && drvLetters[i].Extent) { |
| 2073 | if (Ext2CompareExtents(drvLetters[i].Extent, Volume->Extent)) { |
| 2074 | letters |= (((ULONGLONG) 1) << i); |
| 2075 | if (drvChar != drvLetters[i].Letter) { |
| 2076 | drvLetters[i].bTemporary = TRUE; |
| 2077 | } |
| 2078 | } |
| 2079 | } |
| 2080 | } |
| 2081 | |
| 2082 | errorout: |
| 2083 | |
| 2084 | return letters; |
| 2085 | } |
| 2086 | |
| 2087 | ULONGLONG |
| 2088 | Ext2QueryCdromDrvLetters(PEXT2_CDROM Cdrom) |
no test coverage detected