Condividi tramite


Riutilizzo degli oggetti richiesta framework

Per migliorare le prestazioni, i driver basati su framework che creano e inviano molte richieste asincrone quasi identiche a una destinazione di I/O possono riutilizzare gli oggetti invece di creare un nuovo oggetto richiesta per ogni richiesta. Un driver può riutilizzare un oggetto richiesta dopo il completamento della richiesta.

Se un driver ha creato un oggetto request chiamando WdfRequestCreate o WdfRequestCreateFromIrp, può riutilizzare la richiesta chiamando WdfRequestReuse. Un driver può anche riutilizzare gli oggetti di richiesta ricevuti dal framework nelle code di I/O, ma non può modificare l'IRP che l'oggetto richiesta ricevuta contiene.

Se si è attenti a evitare situazioni che causano l'esito negativo dei valori restituiti descritti in WdfRequestReuse, il driver può chiamare WdfRequestReuse dall'interno di una funzione di callback di CompletamentoRoutine. La funzione callback di CompletamentoRoutine ha un valore restituito VOID e pertanto non può segnalare errori.

Se il driver fornisce una funzione di callback di CompletamentoRoutine per un oggetto request riutilizzato, il driver deve chiamare WdfRequestSetCompletionRoutine dopo aver chiamato WdfRequestReuse.