Systémové programovanie Windows Device IO Andrea Číková Martin Osovský O čom to dnes bude? • Práca so vstupom a výstupom ▫ Otváranie a zatváranie zariadení ▫ Súbory a adresáre ▫ Čítanie a zápis, synchrónne a asynchrónne ▫ Zariadenia typu klient - server Vstupno–výstupné zariadenia • Súborový systém • Porty • Sieťové zariadenia • Konzola a okná • Pracuje sa opäť pomocou HANDLE ▫ Podobné spôsoby práce pre všetky zariadenia ▫ Možnosť zdieľania medzi procesmi a počítačmi Dôležité funkcie • Skoro všetko sa vytvára/otvára pomocou funkcie CreateFile ▫ Súbory, adresáre (CreateDirectory), disky, porty, klientské časti mailslotov a rúr ▫ Rozlíšenie podľa mena a niektorých parametrov ▫ Odlišujú sa operácie • Sockety pomocou UNIX API • Serverové časti majú vlastné funkcie (CreateNamedPipe) • Zatváranie pomocou CloseHandle Funkcia CreateFile • lpFileName - má špeciálnu notáciu pre rôzne zariadenia (UNC cesta, COM1, \\server\pipe\meno) • dwDesiredAccess – čítanie, zápis, atď. • dwShareMode – čo môžu robiť ostatní • lpSecurityAttributes – nastavenie bezpečnostných atribútov • dwCreationDisposition – napr. má sa vytvoriť, keď neexistuje? • dwFlagsAndAttributtes – atribúty ako HIDDEN, rôzne príznaky (OVERLAPPED, BACKUP_SEMANTICS) • hTemplateFile – vzor pre atribúty Čítanie a zápis • Funkcie WriteFile a ReadFile • Synchrónne a asynchrónne • Číta sa vždy po bajtoch • Systém udržiava aktuálny pointer • Asynchrónne: ▫ Štruktúra OVERLAPPED ▫ Čakám na zasignalizovanie handlu súboru alebo na event z OVERLAPPED ▫ Čítanie sa neriadi pointrom, ale offsetom ▫ Error code je súčasťou štruktúry Funkcie pre prácu so súbormi a adresármi • Rôzne uľahčujúce funkcie: ▫ CopyFile, MoveFile ▫ GetFileAttributes ▫ FindFirstFile, FindNextFile, FindClose (prepojené cez handle), štruktúra WIN32_FIND_DATA Ďakujeme za pozornosť 