Proprietà della richiesta

Quando il gestore di I/O invia una richiesta di I/O a un driver basato su framework, il framework intercetta la richiesta e crea un oggetto richiesta framework. Il framework è proprietario dell'oggetto richiesta, perché solo il framework può accedere alla richiesta ed eseguire operazioni sull'oggetto.

Dopo che il framework crea un oggetto richiesta, inserisce l'oggetto in una delle code di I/O del driver. Il framework continua a possedere l'oggetto richiesta finché non rimuove la richiesta dalla coda e la recapita al driver.

Dopo che il driver riceve l'oggetto richiesta, è proprietario della richiesta. Il driver può accedere all'oggetto richiesta tramite un handle ed eseguire operazioni sull'oggetto . Mentre il driver è proprietario dell'oggetto richiesta, può rieseguire la coda, completare, annullare o inoltrare la richiesta, dopo la quale non è più proprietario dell'oggetto richiesta e non può accedervi.

Quando la proprietà di un oggetto richiesta passa tra un driver e il framework, il valore dell'handle dell'oggetto non cambia. Ad esempio, se un driver riceve una richiesta da una coda di I/O, lo accoda a una coda diversa e quindi riceve nuovamente la richiesta, il valore dell'handle non cambia. Analogamente, se un driver inoltra una richiesta a una destinazione di I/O e successivamente riceve una notifica che la destinazione di I/O ha completato la richiesta, la funzione di callback di notifica del driver riceve lo stesso valore di handle fornito dal driver alla destinazione di I/O.