WDF_REQUEST_SEND_OPTIONS 结构 (wdfrequest.h)

[适用于 KMDF 和 UMDF]

WDF_REQUEST_SEND_OPTIONS 结构指定与向 I/O 目标发送 I/O 请求关联的选项。

语法

typedef struct _WDF_REQUEST_SEND_OPTIONS {
  ULONG    Size;
  ULONG    Flags;
  LONGLONG Timeout;
} WDF_REQUEST_SEND_OPTIONS, *PWDF_REQUEST_SEND_OPTIONS;

成员

Size

此结构的大小(以字节为单位)。

Flags

WDF_REQUEST_SEND_OPTIONS_FLAGS类型的标志的按位 OR。

Timeout

一个超时值,以系统时间单位 (100 纳秒的间隔) 。 如果驱动程序已设置WDF_REQUEST_SEND_OPTION_TIMEOUT标志,则框架将取消关联的 I/O 请求(如果未在指定的超时期限内完成)。 超时值可以是负、正或零,如下所示:

  • 如果值为负值,则过期时间相对于当前系统时间。
  • 如果值为正值,则过期时间指定为绝对时间 (实际上相对于 1601 年 1 月 1 日) 。
  • 如果值为零,则框架不会超时请求。
相对过期时间不受在指定超时期限内可能发生的系统时间的任何更改的影响。 绝对过期时间确实反映了系统时间更改。

框架提供 时间转换函数 ,用于将时间值转换为系统时间单位。

如果框架因指定的超时期限已过而取消 I/O 请求,则框架会为 I/O 请求提供STATUS_IO_TIMEOUT完成状态。 但是,在超时期限过后,I/O 目标可能会在框架能够取消 I/O 请求之前完成该请求。 在这种情况下,I/O 请求的完成状态将不会STATUS_IO_TIMEOUT。

注解

WDF_REQUEST_SEND_OPTIONS 结构传递给向 I/O 目标发送 I/O 请求的对象方法,例如 WdfRequestSend 方法。 必须通过调用 WDF_REQUEST_SEND_OPTIONS_INITWDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT 函数来初始化 结构。

如果驱动程序同步发送请求,我们建议驱动程序在此结构的 Flags 成员中设置超时值和超时标志。

要求

要求
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfrequest.h (包括 Wdf.h)

另请参阅

WDF_REQUEST_SEND_OPTIONS_FLAGS

WDF_REQUEST_SEND_OPTIONS_INIT

WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT

WdfRequestSend