Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[Se aplica a KMDF y UMDF]
El método WdfDeviceConfigureRequestDispatching hace que el marco pone en cola un tipo especificado de solicitudes de E/S a una cola de E/S especificada.
Sintaxis
NTSTATUS WdfDeviceConfigureRequestDispatching(
[in] WDFDEVICE Device,
[in] WDFQUEUE Queue,
[in] WDF_REQUEST_TYPE RequestType
);
Parámetros
[in] Device
Proporciona un identificador a un objeto de dispositivo de marco.
[in] Queue
Proporciona un identificador a un objeto de cola de marco.
[in] RequestType
Proporciona un enumerador con tipo WDF_REQUEST_TYPEque identifica el tipo de solicitud que se va a poner en cola. Los únicos enumeradores válidos son:
WdfRequestTypeCreate
WdfRequestTypeRead
WdfRequestTypeWrite
WdfRequestTypeDeviceControl
WdfRequestTypeDeviceControlInternal
Valor devuelto
Si la operación se realiza correctamente, el método devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:
| Código devuelto | Descripción |
|---|---|
|
Un parámetro de entrada no es válido. |
|
La cantidad de memoria disponible es demasiado baja. |
|
El controlador ya ha asignado una cola al tipo de solicitud especificado. |
El método podría devolver otros valores ntstatus de .
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
Cada llamada a WdfDeviceConfigureRequestDispatching especifica un tipo de solicitud. Si desea que una sola cola de E/S reciba varios tipos de solicitudes (por ejemplo, solicitudes de lectura y escritura), el controlador puede llamar a WdfDeviceConfigureRequestDispatching varias veces para una sola cola de E/S.
Para obtener más información sobre WdfDeviceConfigureRequestDispatching, consulte Creación de colas de E/S y Administración de colas de E/S.
Ejemplos
En el ejemplo de código siguiente se inicializa una estructura de WDF_IO_QUEUE_CONFIG, se crea una cola de E/S y, a continuación, se configura la cola para que reciba solicitudes de escritura.
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;
}
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Universal |
| versión mínima de KMDF | 1.0 |
| versión mínima de UMDF | 2.0 |
| encabezado de | wdfdevice.h (incluya Wdf.h) |
| biblioteca de | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
| irQL | <= DISPATCH_LEVEL |
| reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |