Freigeben über


Besitz anfordern

Wenn der E/A-Manager eine E/A-Anforderung an einen frameworkbasierten Treiber sendet, fängt das Framework die Anforderung ab und erstellt ein Frameworkanforderungsobjekt. Das Framework besitzt das Anforderungsobjekt, da nur das Framework auf die Anforderung zugreifen und Vorgänge für das Objekt ausführen kann.

Nachdem das Framework ein Anforderungsobjekt erstellt hat, platziert es das Objekt in einer der E/A-Warteschlangen des Treibers. Das Framework besitzt weiterhin das Anforderungsobjekt, bis die Anforderung aus der Warteschlange entfernt und an den Treiber übermittelt wird.

Nachdem der Treiber das Anforderungsobjekt empfangen hat , besitzt er die Anforderung. Der Treiber kann über ein Handle auf das Anforderungsobjekt zugreifen und Vorgänge für das Objekt ausführen. Während der Treiber das Anforderungsobjekt besitzt, kann er die Anforderung erneut abrufen, abschließen, abbrechen oder weiterleiten , danach besitzt er das Anforderungsobjekt nicht mehr und kann nicht mehr darauf zugreifen.

Wenn der Besitz eines Anforderungsobjekts zwischen einem Treiber und dem Framework übergeben wird, ändert sich der Wert des Objekthandles nicht. Wenn z. B. ein Treiber eine Anforderung aus einer E/A-Warteschlange empfängt, sie in eine andere Warteschlange wieder einreiht und dann die Anforderung erneut empfängt, ändert sich der Wert des Handles nicht. Wenn ein Treiber eine Anforderung an ein E/A-Ziel weiterleitet und später eine Benachrichtigung erhält, dass das E/A-Ziel die Anforderung abgeschlossen hat, empfängt die Benachrichtigungsrückruffunktion des Treibers denselben Handle-Wert, den der Treiber an das E/A-Ziel übermittelt hat.