WdfRequestGetRequestorMode 函数 (wdfrequest.h)

[适用于 KMDF 和 UMDF]

WdfRequestGetRequestorMode 方法返回指定 I/O 请求的发起者的处理器访问模式。

语法

KPROCESSOR_MODE WdfRequestGetRequestorMode(
  [in] WDFREQUEST Request
);

参数

[in] Request

框架请求对象的句柄。

返回值

如果 I/O 请求的发起者在内核模式下执行,WdfRequestGetRequestorMode 将返回 KernelMode。 否则,此方法返回 UserModeKernelModeUserMode 常量在 wdm.h 中定义。

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

注解

有关 WdfRequestGetRequestorMode 的详细信息,请参阅 获取有关 I/O 请求的信息

示例

以下代码示例来自 NDISProt 示例驱动程序。 本示例检查 I/O 请求是否来自用户模式应用程序的有效 MAC 地址。

//
// To prevent applications from sending packets with spoofed MAC address,
// perform the following check to make sure the source address 
// in the packet is the same as the current MAC address of the NIC.
//
if ((WdfRequestGetRequestorMode(Request) == UserMode) && 
    !NPROT_MEM_CMP(pEthHeader->SrcAddr, pOpenContext->CurrentAddress, NPROT_MAC_ADDR_LEN))
{
    DEBUGP(DL_WARN, ("Write: Failing with invalid Source address"));
    NtStatus = STATUS_INVALID_PARAMETER;
    break;
}

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfrequest.h (包括 Wdf.h)
Library Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf) InvalidReqAccess (kmdf) InvalidReqAccessLocal (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)