Funzione WdfDeviceConfigureRequestDispatching (wdfdevice.h)
[Si applica a KMDF e UMDF]
Il metodo WdfDeviceConfigureRequestDispatching fa sì che il framework accoda un tipo specificato di richieste di I/O a una coda di I/O specificata.
Sintassi
NTSTATUS WdfDeviceConfigureRequestDispatching(
[in] WDFDEVICE Device,
[in] WDFQUEUE Queue,
[in] WDF_REQUEST_TYPE RequestType
);
Parametri
[in] Device
Fornisce un handle a un oggetto dispositivo framework.
[in] Queue
Fornisce un handle a un oggetto coda del framework.
[in] RequestType
Fornisce un enumeratore tipizzato WDF_REQUEST_TYPE che identifica il tipo di richiesta da accodare. Gli unici enumeratori validi sono:
WdfRequestTypeCreate
WdfRequestTypeRead
WdfRequestTypeWrite
WdfRequestTypeDeviceControl
WdfRequestTypeDeviceControlInternal
Valore restituito
Se l'operazione ha esito positivo, il metodo restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:
Codice restituito | Descrizione |
---|---|
|
Un parametro di input non è valido. |
|
La quantità di memoria disponibile è troppo bassa. |
|
Il driver ha già assegnato una coda al tipo di richiesta specificato. |
Il metodo potrebbe restituire altri valori NTSTATUS.
Se il driver fornisce un handle di oggetto non valido, si verifica un controllo di bug.
Commenti
Ogni chiamata a WdfDeviceConfigureRequestDispatching specifica un tipo di richiesta. Se si vuole che una singola coda di I/O riceva più tipi di richieste (ad esempio, richieste di lettura e scrittura), il driver può chiamare WdfDeviceConfigureRequestDispatching più volte per una singola coda di I/O.
Per altre informazioni su WdfDeviceConfigureRequestDispatching, vedere Creazione di code di I/O e gestione delle code di I/O.
Esempio
Nell'esempio di codice seguente viene inizializzata una struttura WDF_IO_QUEUE_CONFIG , viene creata una coda di I/O e quindi viene configurata la coda in modo che riceva le richieste di scrittura.
WDF_IO_QUEUE_CONFIG queueConfig;
WDFQUEUE WriteQueue;
WDF_IO_QUEUE_CONFIG_INIT(
&queueConfig,
WdfIoQueueDispatchSequential
);
queueConfig.EvtIoWrite = MyEvtIoWrite;
status = WdfIoQueueCreate(
Device,
&queueConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&WriteQueue
);
if(!NT_SUCCESS(status)) {
return status;
}
status = WdfDeviceConfigureRequestDispatching(
Device,
WriteQueue,
WdfRequestTypeWrite
);
if(!NT_SUCCESS(status)) {
return status;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1,0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfdevice.h (include Wdf.h) |
Libreria | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |