| 2013 | } |
| 2014 | |
| 2015 | VOID |
| 2016 | Ext2ParseRegistryVolumeParams( |
| 2017 | IN PUNICODE_STRING Params, |
| 2018 | OUT PEXT2_VOLUME_PROPERTY3 Property |
| 2019 | ) |
| 2020 | { |
| 2021 | WCHAR Codepage[CODEPAGE_MAXLEN]; |
| 2022 | WCHAR Prefix[HIDINGPAT_LEN]; |
| 2023 | WCHAR Suffix[HIDINGPAT_LEN]; |
| 2024 | USHORT MountPoint[4]; |
| 2025 | UCHAR DrvLetter[4]; |
| 2026 | WCHAR wUID[8], wGID[8], wEUID[8], wEGID[8]; |
| 2027 | CHAR sUID[8], sGID[8], sEUID[8], sEGID[8]; |
| 2028 | |
| 2029 | BOOLEAN bWriteSupport = FALSE, |
| 2030 | bCheckBitmap = FALSE, |
| 2031 | bCodeName = FALSE, |
| 2032 | bMountPoint = FALSE; |
| 2033 | BOOLEAN bUID = 0, bGID = 0, bEUID = 0, bEGID = 0; |
| 2034 | |
| 2035 | struct { |
| 2036 | PWCHAR Name; /* parameters name */ |
| 2037 | PBOOLEAN bExist; /* is it contained in params */ |
| 2038 | USHORT Length; /* parameter value length */ |
| 2039 | PWCHAR uValue; /* value buffer in unicode */ |
| 2040 | PCHAR aValue; /* value buffer in ansi */ |
| 2041 | } ParamPattern[] = { |
| 2042 | /* writing support */ |
| 2043 | {READING_ONLY, &Property->bReadonly, 0, NULL, NULL}, |
| 2044 | {WRITING_SUPPORT, &bWriteSupport, 0, NULL, NULL}, |
| 2045 | {EXT3_FORCEWRITING, &Property->bExt3Writable, 0, NULL, NULL}, |
| 2046 | |
| 2047 | /* need check bitmap */ |
| 2048 | {CHECKING_BITMAP, &bCheckBitmap, 0, NULL, NULL}, |
| 2049 | /* codepage */ |
| 2050 | {CODEPAGE_NAME, &bCodeName, CODEPAGE_MAXLEN, |
| 2051 | &Codepage[0], Property->Codepage}, |
| 2052 | /* filter prefix and suffix */ |
| 2053 | {HIDING_PREFIX, &Property->bHidingPrefix, HIDINGPAT_LEN, |
| 2054 | &Prefix[0], Property->sHidingPrefix}, |
| 2055 | {HIDING_SUFFIX, &Property->bHidingSuffix, HIDINGPAT_LEN, |
| 2056 | &Suffix[0], Property->sHidingSuffix}, |
| 2057 | {MOUNT_POINT, &bMountPoint, 4, |
| 2058 | &MountPoint[0], &DrvLetter[0]}, |
| 2059 | |
| 2060 | {UID, &bUID, 8, &wUID[0], &sUID[0],}, |
| 2061 | {GID, &bGID, 8, &wGID[0], &sGID[0]}, |
| 2062 | {EUID, &bEUID, 8, &wEUID[0], &sEUID[0]}, |
| 2063 | {EGID, &bEGID, 8, &wEGID[0], &sEGID[0]}, |
| 2064 | |
| 2065 | /* end */ |
| 2066 | {NULL, NULL, 0, NULL} |
| 2067 | }; |
| 2068 | |
| 2069 | USHORT i, j, k; |
| 2070 | |
| 2071 | RtlZeroMemory(Codepage, sizeof(WCHAR) * CODEPAGE_MAXLEN); |
| 2072 | RtlZeroMemory(Prefix, sizeof(WCHAR) * HIDINGPAT_LEN); |
no outgoing calls
no test coverage detected