Compartir a través de


Función WdfDeviceConfigureRequestDispatching (wdfdevice.h)

[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
STATUS_INVALID_PARAMETER
Un parámetro de entrada no es válido.
STATUS_INSUFFICIENT_RESOURCES
La cantidad de memoria disponible es demasiado baja.
STATUS_WDF_BUSY
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)

Consulte también

WDF_IO_QUEUE_CONFIG_INIT

WdfIoQueueCreate