Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Ihr Treiber entweder die sequenzielle oder die parallele Verteilermethode für eine E/A-Warteschlange angegeben hat, ruft das Framework jedes Mal eine vom Treiber bereitgestellte Rückruffunktion auf, wenn sie bereit ist, eine der Anforderungen der Warteschlange an den Treiber zu übermitteln.
Für jede E/A-Warteschlange kann der Treiber eine oder mehrere der folgenden Rückruffunktionen bereitstellen, die als Anforderungshandler bezeichnet werden:
EvtIoRead
Das Framework ruft die Rückruffunktion EvtIoRead einer E/A-Warteschlange auf, wenn eine Leseanforderung in der Warteschlange verfügbar ist.
EvtIoWrite
Das Framework ruft die EvtIoWrite-Rückruffunktion einer E/A-Warteschlange auf, wenn eine Schreibanforderung in der Warteschlange verfügbar ist.
EvtIoDeviceControl
Das Framework ruft die EvtIoDeviceControl-Rückruffunktion einer E/A-Warteschlange auf, wenn eine Geräte-E/A-Steuerungsanforderung in der Warteschlange verfügbar ist.
EvtIoInternalDeviceControl
Das Framework ruft die EvtIoInternalDeviceControl-Rückruffunktion einer E/A-Warteschlange auf, wenn eine interne Geräte-E/A-Steueranfrage in der Warteschlange eingegangen ist.
EvtIoDefault
Das Framework ruft die EvtIoDefault-Rückruffunktion einer E/A-Warteschlange auf, wenn eine Anforderung verfügbar ist, wenn der Treiber die zugehörige anforderungsspezifische Rückruffunktion nicht angegeben hat.
Der Treiber registriert Rückruffunktionen, wenn er WdfIoQueueCreate aufruft , um eine E/A-Warteschlange für ein Gerät zu erstellen.
Jede dieser Rückruffunktionen empfängt zwei Eingabeargumente: ein Handle für die E/A-Anforderung, die das Framework an den Treiber liefert, und ein Handle für die E/A-Warteschlange, die die Anforderung enthält. Eine Rückruffunktion kann das Zielgerät ermitteln, indem WdfIoQueueGetDevice aufgerufen wird.
Das Framework ruft die Anforderungs-Handler des Treibers in einem beliebigen Threadkontext auf. Während der Ausführung in einem beliebigen Thread-Kontext sollte ein Treiber nicht über einen längeren Zeitraum warten. In einigen Fällen verwendet Ihr Treiber möglicherweise Kernel dispatcher-Objekte als Synchronisierungsmechanismen. Informationen dazu, wann Ihr Treiber auf Verteilerobjekte warten kann und was zu tun ist, wenn dies nicht möglich ist, finden Sie unter Einführung in Kernel Dispatcher-Objekte.