WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY structure (wdfio.h)

[Applies to KMDF only]

The WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY structure contains driver-supplied information that the framework uses to enable guaranteed forward progress for an I/O queue.

Syntax

typedef struct _WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY {
  ULONG                                              Size;
  ULONG                                              TotalForwardProgressRequests;
  WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY            ForwardProgressReservedPolicy;
  WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS   ForwardProgressReservePolicySettings;
  PFN_WDF_IO_ALLOCATE_RESOURCES_FOR_RESERVED_REQUEST EvtIoAllocateResourcesForReservedRequest;
  PFN_WDF_IO_ALLOCATE_REQUEST_RESOURCES              EvtIoAllocateRequestResources;
} WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY, *PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY;

Members

Size

The length, in bytes, of this structure.

TotalForwardProgressRequests

The number of request objects that the framework will attempt to reserve for use in low-memory situations. This number must be greater than zero.

ForwardProgressReservedPolicy

A WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY-typed value that specifies how the framework will allocate request objects during low-memory situations.

ForwardProgressReservePolicySettings

A WDF_IO_FORWARD_PROGRESS_RESERVED_POLICY_SETTINGS structure that contains additional values that are specific to the policy that the ForwardProgressReservedPolicy member specifies. This member should be NULL unless the driver provides an EvtIoWdmIrpForForwardProgress callback function.

EvtIoAllocateResourcesForReservedRequest

A pointer to the driver's queue-specific EvtIoAllocateResourcesForReservedRequest callback function, or NULL.

EvtIoAllocateRequestResources

A pointer to the driver's queue-specific EvtIoAllocateRequestResources callback function, or NULL.

Remarks

The WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY structure is used as input to the WdfIoQueueAssignForwardProgressPolicy method.

Drivers must initialize the WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY structure by calling WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT, WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT, or WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT before they call WdfIoQueueAssignForwardProgressPolicy.

Requirements

Requirement Value
Minimum KMDF version 1.9
Header wdfio.h (include Wdf.h)