[适用于 KMDF 和 UMDF]
WdfRequestSetInformation 方法为指定的 I/O 请求设置完成状态信息。
语法
VOID WdfRequestSetInformation(
  [in] WDFREQUEST Request,
  [in] ULONG_PTR  Information
);
参数
[in] Request
框架请求对象的句柄。
[in] Information
请求的驱动程序定义的完成状态信息。
返回值
没有
言论
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
基于框架的驱动程序使用 WdfRequestSetInformation 方法提供与 I/O 请求完成相关的驱动程序特定信息,例如传输的字节数。 其他驱动程序可以通过调用 WdfRequestGetInformation来获取此信息。
驱动程序还可以通过调用 WdfRequestCompleteWithInformation来指定完成状态信息。
有关 WdfRequestSetInformation的详细信息,请参阅 完成 I/O 请求。
例子
下面的代码示例根据 EvtIoDeviceControl 回调函数接收的 I/O 控件代码的值设置请求完成信息。
VOID
MyEvtIoDeviceControl(
    IN WDFQUEUE  Queue,
    IN WDFREQUEST  Request,
    IN size_t  OutputBufferLength,
    IN size_t  InputBufferLength,
    IN ULONG  IoControlCode
    )
{
    switch (IoControlCode) {
      case MY_IOCTL_CODE_1:
            WdfRequestSetInformation(
                                     Request,
                                     VALUE_1
                                     );
            status = STATUS_SUCCESS;                                     
            break;
      case MY_IOCTL_CODE_2:
            WdfRequestSetInformation(
                                     Request,
                                     VALUE_2
                                     );
            status = STATUS_SUCCESS;                                     
            break;
      case MY_IOCTL_CODE_3:
            WdfRequestSetInformation(
                                     Request,
                                     VALUE_3
                                     );
            status = STATUS_SUCCESS;
            break;
      default:
            status = STATUS_INVALID_DEVICE_REQUEST;
            break;
    }
    WdfRequestComplete(
                       Request,
                       status
                       );
}
要求
| 要求 | 价值 | 
|---|---|
| 目标平台 | 普遍 | 
| 最低 KMDF 版本 | 1.0 | 
| 最低 UMDF 版本 | 2.0 | 
| 标头 | wdfrequest.h (包括 Wdf.h) | 
| 库 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) | 
| IRQL | <=DISPATCH_LEVEL | 
| DDI 符合性规则 | DriverCreate(kmdf),InvalidReqAccess(kmdf),InvalidReqAccessLocal(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |