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 de tipo WDF_REQUEST_TYPE que 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.

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Comentarios

Cada llamada a WdfDeviceConfigureRequestDispatching especifica un tipo de solicitud. Si desea que una única 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, vea Creating I/O Queues and Managing I/O Queues.

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 Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluir Wdf.h)
Library 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