Senden von E/A-Anforderungen an allgemeine E/A-Ziele

Ihr Treiber kann E/A-Anforderungen entweder synchron oder asynchron an allgemeine E/A-Ziele senden.

Wenn ein Treiber E/A-Anforderungen synchron sendet, sendet ein Treiberthread die Anforderungen nacheinander. Der Thread wartet, bis jede Anforderung abgeschlossen ist, bevor die nächste gesendet wird. Dieser Prozess ist einfacher als das asynchrone Senden der E/A-Anforderungen. Ihr Treiber kann E/A-Anforderungen synchron senden, wenn er nicht viele Anforderungen sendet und die System- oder Geräteleistung nicht beeinträchtigt wird, während der Treiber auf jede E/A-Anforderung wartet.

Wenn ein Treiber E/A-Anforderungen asynchron sendet, sendet ein Treiberthread jede Anforderung, sobald die Anforderung gesendet werden kann, ohne auf den Abschluss zuvor gesendeter Anforderungen zu warten. Wenn Ihr Treiber viele E/A-Anforderungen in kurzer Zeit verarbeiten muss, können Sie wahrscheinlich nicht zulassen, dass ihr Treiber auf den Abschluss jeder Anforderung wartet, bevor die nächste Anforderung gesendet wird. Andernfalls können Sie Daten verlieren oder die Leistung der Geräte Ihres Treibers und möglicherweise des gesamten Systems beeinträchtigen.

Das E/A-Zielobjekt des Frameworks bietet zwei Sätze von Methoden, die Ihr Treiber aufrufen kann: eine Gruppe zum synchronen Senden von E/A-Anforderungen und die andere gruppe zum asynchronen Senden von E/A-Anforderungen.

Für jede dieser Methoden müssen Sie ein Anforderungsobjekt und einen Pufferspeicher angeben. Sie können diese Methoden verwenden, um eine Anforderung weiterzuleiten, die Ihr Treiber in einer seiner E/A-Warteschlangen empfangen hat, oder um eine neue Anforderung zu erstellen und zu senden.