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

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

Wenn ein Treiber E/A-Anforderungen synchron sendet, sendet ein Treiberthread die Anforderungen einzeln. Der Thread wartet, bis jede Anforderung abgeschlossen ist, bevor er die nächste sendet. 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 reduzieren.

Das E/A-Zielobjekt des Frameworks stellt zwei Sätze von Methoden bereit, 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 Pufferspeicherplatz bereitstellen. 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.