Zapis bez bufora

0

W jaki sposób zapisać i odczytać dane z pliku z pominięciem buforowania Windows?

0

nie wiem. może poszukaj w necie.

0

Dzięki za błyskotliwą odpowiedź pełną niezbędnych a zarazem jakże interesujących informacji. Jestem wprost oszołomiony Twym geniuszem - przytłacza mnie on. :-8

0

Ja na pewno wiesz, operacje na dysku mogą być przeprowadzane w 2 trybach. Jeden stary, odziedziczony z CP/M (czy jakoś tak) i drugi już DOSowy (ten z uchwytami). Przy tym pierwszym masz bezpośredni dostęp do pliku, ale musisz sam wyliczyć położenie pliku na dysku. Można więc dostać się bez DOSa czy Windowsa stosując.... przerwania BIOS. Więc cały problem sprowadza się do wywołania przerwania w Windowsie. Nie wiem jak w Win9x, ale w XP to mi się jeszcze nie udało (może w tym trybie co sterowniki? Ring0 czy jakoś tak).

0

Systemy wielozadaniowe są tak pisane ze nie dozwolone jest uzywanie pod nimi przerwań, same też z takowych nie korzystają, poza małym szczegółem(menadzerem niskich zadań) czyli takim co dzieli czas procesora, reszta jest robiona na bazie odwolywania sie do portow, co do operacji ktore by miały przebiegać bez buforowania to w WinApi są funkcje gdzie mozna zaznaczyc czy chcemy z buforowaniem czy bez, ale nie pamietam jak one sie wabią

0

Windoza 98 pozwala uzywać przerwan bezposrednio programom DOSowym, pisanym np. w Turbo Assemblerze. Windows XP, który ma ograniczonego DOSa tego nie umożliwia za bardzo, chyba, że przydzieli programowi status sterownika.

Ja tez nie znam innej metody na bezposredni zapis lub odczyt z pliku, dlatego, że nawet wyliczając pozycję pliku na dysku (np. na podstawie FAT), odczytamy go przerwaniem 13h, które potrzebuje bufora (minimalnie 512 lub 1024 bajtowego) pod adresem [ES:BX].

A w ogóle to dlaczego koniecznie chcesz obejść tego bufora??? :-)

0

Witam!
Tak gwoli wyjaśnienia. To pytanie zadał mój kumpel i poprosił o wrzucenie na forum. A oto, co on znalazł:

Wystarczy funkcja WinApi CreateFile z flagami:
FILE_FLAG_WRITE_THROUGH
FILE_FLAG_NO_BUFFERING

oraz funkcja FlushFileBuffers

Dzięki wszystkim za zainteresowanie tematem i uważam temat za zamknięty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1