EreTIk's Box » Cтатьи, исходники » Таблица разрешенных символов в именах файлов для разных файловых систем


Эти данные располагаются в ядре, в массиве (0x80 элементов), на который указывет nt!FsRtlLegalAnsiCharacterArray. Индекс элемента массива в нем является численным значением символа. Каждый элемент – маска флагов, сигнализирующая: для каких файловых систем разрешено использовать символ в имени файла.

Флаги:

  • 0x01 - символ разрешен к использованию на файловой системе FAT
  • 0x02 - символ разрешен к использованию на файловой системе HPFS
  • 0x04 - символ разрешен к использованию на файловой системе NTFS
  • 0x08 - разрешен к использованию в качестве WILD-символа (задание маски)
  • 0x10 - символ разрешен к использованию на файловой системе NTFS в имени потока (stream)

Таблица взята из ядра Windows (актуальность проверена на линейке Windows 2000-Seven):

СимволFATHPFSNTFSNTFS:StreamWILD
0x00 ^@ XXXXX
0x01 ^A XXXVX
0x02 ^B XXXVX
0x03 ^C XXXVX
0x04 ^D XXXVX
0x05 ^E XXXVX
0x06 ^F XXXVX
0x07 ^G XXXVX
0x08 ^H XXXVX
0x09 ^I XXXVX
0x0A ^J XXXVX
0x0B ^K XXXVX
0x0C ^L XXXVX
0x0D ^M XXXVX
0x0E ^N XXXVX
0x0F ^O XXXVX
0x10 ^P XXXVX
0x11 ^Q XXXVX
0x12 ^R XXXVX
0x13 ^S XXXVX
0x14 ^T XXXVX
0x15 ^U XXXVX
0x16 ^V XXXVX
0x17 ^W XXXVX
0x18 ^X XXXVX
0x19 ^Y XXXVX
0x1A ^Z XXXVX
0x1B ESC XXXVX
0x1C FS XXXVX
0x1D GS XXXVX
0x1E RS XXXVX
0x1F US XXXVX
0x20 space VVVVX
0x21 ! VVVXX
0x22 " XXXVV
0x23 # VVVVX
0x24 $ VVVVX
0x25 % VVVVX
0x26 & VVVVX
0x27 ' VVVVX
0x28 ( VVVVX
0x29 ) VVVVX
0x2A * XXXVV
0x2B + XVVVX
0x2C , XVVVX
0x2D - VVVVX
0x2E . VVVXX
0x2F / XXXXX
0x30 0 VVVVX
0x31 1 VVVVX
0x32 2 VVVVX
0x33 3 VVVVX
0x34 4 VVVVX
0x35 5 VVVVX
0x36 6 VVVVX
0x37 7 VVVVX
0x38 8 VVVVX
0x39 9 VVVVX
0x3A : XXVXX
0x3B ; XVVVX
0x3C < XXXVV
0x3D = XVVVX
0x3E > XXXVV
0x3F ? XXXVV
0x40 @ VVVVX
0x41 A VVVVX
0x42 B VVVVX
0x43 C VVVVX
0x44 D VVVVX
0x45 E VVVVX
0x46 F VVVVX
0x47 G VVVVX
0x48 H VVVVX
0x49 I VVVVX
0x4A J VVVVX
0x4B K VVVVX
0x4C L VVVVX
0x4D M VVVVX
0x4E N VVVVX
0x4F O VVVVX
0x50 P VVVVX
0x51 Q VVVVX
0x52 R VVVVX
0x53 S VVVVX
0x54 T VVVVX
0x55 U VVVVX
0x56 V VVVVX
0x57 W VVVVX
0x58 X VVVVX
0x59 Y VVVVX
0x5A Z VVVVX
0x5B [ XVVVX
0x5C backslashXXXXX
0x5D ] XVVVX
0x5E ^ VVVVX
0x5F _ VVVVX
0x60 ` VVVVX
0x61 a VVVVX
0x62 b VVVVX
0x63 c VVVVX
0x64 d VVVVX
0x65 e VVVVX
0x66 f VVVVX
0x67 g VVVVX
0x68 h VVVVX
0x69 i VVVVX
0x6A j VVVVX
0x6B k VVVVX
0x6C l VVVVX
0x6D m VVVVX
0x6E n VVVVX
0x6F o VVVVX
0x70 p VVVVX
0x71 q VVVVX
0x72 r VVVVX
0x73 s VVVVX
0x74 t VVVVX
0x75 u VVVVX
0x76 v VVVVX
0x77 w VVVVX
0x78 x VVVVX
0x79 y VVVVX
0x7A z VVVVX
0x7B { VVVVX
0x7C | XXXVX
0x7D } VVVVX
0x7E ~ VVVVX
0x7F  VVVVX
> 0x7FVVVVX

ΞρεΤΙκ