FileTest
Nástroj pro interaktivní volání funkcí souborového systému
Popis aplikace
Utilitka FileTest slouží k interaktivnímu vyvolávání funkcí pracujících se souborovými funkcemi Windows, a to jak Win32
(CreateFile, ReadFile, WriteFile), tak i nativních NT API (NtCreateFile). Funguje to tak, že si "naklikáte" parametry funkce CreateFile (jméno souboru,
požadovaný přístup, atributu atd.) a stiskem tlačítka "CreateFile" vyvoláte otevření/vytvoření souboru. Program zavolá funkci CreateFile, ověří návratovou hodnotu (handle) souboru
a v případě chyby i obrazí kód a text chyby.
Kromě funkce CreateFile je možné i číst ze souboru, zapsat do souboru,
mapovat soubor do paměti a podobně. Pro sledování souborového systému je velmi užitečné spojit tuto utilitku s programem FileSpy.
Asynchronní operace
Počínaje verzí 2.6.0.474, FileTest nečeká na výsledek operace, pokud příslušná API funkce vrátí
STATUS_PENDING nebo ERROR_IO_PENDING. Namísto toho je čekající operace vložena do seznamu probíhajících
operací. Vyhrazené hlídací vlákno kontroluje všechny probíhající operace. Pokud je některá z nich dokončena,
uživatelské rozhraní FileTestu zobrazí výsledek této operace.
Nejlepší způsob jak toto vyzkoušet:
- Otevřete soubor na vzdáleném serveru, zvolte asynchronní přístup (možno provést ve VMWARE)
- Odpojte síťový kabel (nebo virtuální síť VMWARE)
- Vyvolejte požadavek na přečtení souboru (ReadFile nebo NtReadFile).
V tomto případě uvidíte že operace bude nějakou dobu čekat na dokončení. Jakmile síťový redirektor
detekuje, že je síť (nebo VMWARE) nedostupná, operace skončí s chybou a FileTest zobrazí výsledek.
Co všechno podporuje
Současná verze podporuje test následujících API funkcí:
- Transakční API (pouze Vista+)
- Souborová virtualizace (pouze Vista+)
- CreateFile
- NtCreateFile
- ReadFile
- NtReadFile
- WriteFile
- NtWriteFile
- LockFile
- NtLockFile
- UnlockFile
- NtUnlockFile
- GetFileSize
- SetFilePointer
- SetEndOfFile
- NtCreateSection
- NtOpenSection
- NtMapViewOfSection
- NtUnmapMapViewOfSection
- CopyFile
- MoveFile
- DeleteFile
- GetFileAttributes
- NtQueryAttributesFile
- FlushFileBuffers
- Získání FileID
- Použití FileID k otevření souboru
- NtQueryInformationFile
- NtQueryDirectoryFile
- NtSetInformationFile
- NtQueryVolumeInformationFile
- NtSetVolumeInformationFile
- NtQueryEaFile
- NtSetEaFile
- NtQuerySecurityObject
- NtSetSecurityObject
- NtCreateSymbolicLinkObject
- NtQuerySymbolicLinkObject
- Hardlinky
- Reparse Pointy
Zdrojové kódy
Ke stažení je k dispozici zdrojový kód aplikace organizovaný jako projekt pro
MS Visual Studio 2008. Pokud chcete projekt zkompilovat, použijte následující postup:
- Rozbalte balíček do prázdného adresáře
- Otevřete projekt "FileTest"
- Sestavte EXE.
Ke stažení
Copyright (c) Ladislav Zezula 2014