MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2PerformRegistryVolumeParams

Function Ext2PerformRegistryVolumeParams

Ext4Fsd/memory.c:2153–2223  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2151}
2152
2153NTSTATUS
2154Ext2PerformRegistryVolumeParams(IN PEXT2_VCB Vcb)
2155{
2156 NTSTATUS Status;
2157 UNICODE_STRING VolumeParams;
2158
2159 Status = Ext2QueryVolumeParams(Vcb, &VolumeParams);
2160 if (NT_SUCCESS(Status)) {
2161
2162 /* set Vcb settings from registery */
2163 EXT2_VOLUME_PROPERTY3 Property;
2164 Ext2ParseRegistryVolumeParams(&VolumeParams, &Property);
2165 Ext2ProcessVolumeProperty(Vcb, &Property, sizeof(Property));
2166
2167 } else {
2168
2169 /* don't support auto mount */
2170 if (IsFlagOn(Ext2Global->Flags, EXT2_AUTO_MOUNT)) {
2171 Status = STATUS_SUCCESS;
2172 } else {
2173 Status = STATUS_UNSUCCESSFUL;
2174 goto errorout;
2175 }
2176
2177 /* set Vcb settings from Ext2Global */
2178 if (IsFlagOn(Ext2Global->Flags, EXT2_SUPPORT_WRITING)) {
2179 if (Vcb->IsExt3fs) {
2180 if (IsFlagOn(Ext2Global->Flags, EXT3_FORCE_WRITING)) {
2181 ClearLongFlag(Vcb->Flags, VCB_READ_ONLY);
2182 } else {
2183 SetLongFlag(Vcb->Flags, VCB_READ_ONLY);
2184 }
2185 } else {
2186 ClearLongFlag(Vcb->Flags, VCB_READ_ONLY);
2187 }
2188 } else {
2189 SetLongFlag(Vcb->Flags, VCB_READ_ONLY);
2190 }
2191
2192 /* set the default codepage */
2193 Vcb->Codepage.PageTable = Ext2Global->Codepage.PageTable;
2194 memcpy(Vcb->Codepage.AnsiName, Ext2Global->Codepage.AnsiName, CODEPAGE_MAXLEN);
2195 Vcb->Codepage.PageTable = Ext2Global->Codepage.PageTable;
2196
2197 if (Vcb->bHidingPrefix = Ext2Global->bHidingPrefix) {
2198 RtlCopyMemory( Vcb->sHidingPrefix,
2199 Ext2Global->sHidingPrefix,
2200 HIDINGPAT_LEN);
2201 } else {
2202 RtlZeroMemory( Vcb->sHidingPrefix,
2203 HIDINGPAT_LEN);
2204 }
2205
2206 if (Vcb->bHidingSuffix = Ext2Global->bHidingSuffix) {
2207 RtlCopyMemory( Vcb->sHidingSuffix,
2208 Ext2Global->sHidingSuffix,
2209 HIDINGPAT_LEN);
2210 } else {

Callers 1

Ext2InitializeVcbFunction · 0.85

Calls 4

Ext2QueryVolumeParamsFunction · 0.85
Ext2FreePoolFunction · 0.85

Tested by

no test coverage detected