summaryrefslogtreecommitdiff
path: root/wpd/WpdServiceSampleDriver/FakeStorage.cpp
diff options
context:
space:
mode:
authorpali <[email protected]>2019-09-24 23:12:26 +0200
committerAdonais Romero González <[email protected]>2019-09-24 14:12:26 -0700
commit16022c593787aef040b8a37ef697316e07f1322e (patch)
treee50e8891aad61c6e7dbdd070d270cb9a5e600de2 /wpd/WpdServiceSampleDriver/FakeStorage.cpp
parent7aa77ce9373bbe7eab4ab90890707c4d9ea526a2 (diff)
Fix changing and reading FAT labels with leading 0xE5 byte in fastfat.sys (#303)86973
FAT Volume Label is stored in the root directory entry and therefore when setting new Volume Label with leading 0xE5 byte it first needs to be converted to 0x05 byte. This step is also required by Microsoft FAT specification (fatgen103.doc) and also applied for all other files and directories. But not for volume label yet. First byte 0xE5 in directory entry means that entry is removed. Similarly, when reading Volume Label from the root directory, leading byte 0x05 first needs to be converted to 0xE5 and then later processed. This is reverse operation as described in previous paragraph. FAT Volume Label is converted from Unicode to bytes according to OEM code page. OEM code page is configured in Language for non-Unicode applications settings in Country/Region settings. When it is set to English (United Kingdom), then OEM code page is 850. And in 850 is Unicode LATIN CAPITAL LETTER O WITH TILDE represented as 0xE5. Therefore this pull request fixes setting FAT label "Õ" when regional settings are set to English (United Kingdom).
Diffstat (limited to 'wpd/WpdServiceSampleDriver/FakeStorage.cpp')
0 files changed, 0 insertions, 0 deletions