Freigeben über


Leeren zwischengespeicherter Daten während PIO-Vorgängen

Auf einigen Plattformen weisen die Anweisungen und Datencaches im Prozessor Cachekohärenzanomalien während PIO-Lesevorgängen auf.

Hinweis Um die Datenintegrität während ihrer Lesevorgänge zu gewährleisten, müssen Treiber, die PIO verwenden, folgende Richtlinie befolgen: Aufrufen von KeFlushIoBuffers am Ende jedes Lesevorgangs.

Beispielsweise sollte ein Treiber, der eine PIO-Übertragung von seinem Gerät in den Systemspeicher vornimmt, KeFlushIoBuffers am Ende jedes Geräteübertragungsvorgangs aufrufen. Als weiteres Beispiel sollte ein Treiber, der eine Sequenz von Geräteregistern in den Systemspeicher liest, KeFlushIoBuffers am Ende der Sequenz aufrufen. Andernfalls versucht ein solcher Treiber möglicherweise, auf einigen Plattformen auf Daten zuzugreifen, die sich noch im Datencache des Prozessors und nicht im Systemspeicher befinden.

KeFlushIoBuffers tut nichts, wenn der Prozessor sich auf die Cachekohärenz verlassen kann, sodass Aufrufe dieser Supportroutine fast keinen Mehraufwand auf einer solchen Plattform haben.