KSMETHOD_ITEM 结构 (ks.h)

KSMETHOD_ITEM 结构描述方法集中的单个方法。

语法

typedef struct {
  ULONG        MethodId;
  union {
    PFNKSHANDLER MethodHandler;
    BOOLEAN      MethodSupported;
  };
  ULONG        MinMethod;
  ULONG        MinData;
  PFNKSHANDLER SupportHandler;
  ULONG        Flags;
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;

成员

MethodId

指定此方法在其方法集中的标识符。

MethodHandler

指向微型驱动程序提供的 KStrMethodHandler 回调例程的指针。

MethodSupported

指定此方法是否受支持。

MinMethod

指定完全指定方法所需的最小缓冲区大小。 此 大小 至少为 (KSMETHOD) 字节。

MinData

指定指定方法数据缓冲区所需的最小缓冲区大小。 此缓冲区用于读取和/或写入与 方法相关的信息。

SupportHandler

指向微型驱动程序提供的 KStrSupportHandler 回调例程的指针。

Flags

指定此方法请求的请求类型。

方法请求的类型
KSMETHOD_TYPE_NONE 指示不应使用处理程序 的数据 缓冲区。 对于缓冲方法,尽管分配了空间,但不会向系统缓冲区复制数据或从系统缓冲区复制任何数据。 在源模式下 (KSMETHOD_TYPE_SOURCE) 时,不会创建 MDL。
KSMETHOD_TYPE_READ 指示应从处理程序 的数据 缓冲区读取参数。 缓冲后,数据将复制到系统缓冲区。 处于源模式时,将探测并锁定 IoReadAccess 的数据
KSMETHOD_TYPE_WRITE 指示应将参数写入处理程序 的数据 缓冲区。 缓冲后,将从系统缓冲区复制数据。 处于源模式时,将探测并锁定 IoWriteAccess 的数据。
KSMETHOD_TYPE_MODIFY 指示应读取参数并将其写入处理程序 的数据 缓冲区。 传入的数据将被返回的数据覆盖。 这可能意味着传入的结构可能只是更新。 缓冲后,数据将复制到系统缓冲区,并在 IRP 完成时复制回系统缓冲区。 处于源模式时,将探测并锁定 IoModifyAccess 的数据。
KSMETHOD_TYPE_SOURCE 指示在源模式下处理方法。 分配 MDL,并探测和锁定数据。 若要指示缓冲的方法,请将此标志与此列表中的其他标志结合使用。

注解

微型驱动程序使用 KSMETHOD_ITEM 结构来定义方法集中的方法。 微型驱动程序实现方法并使用 MethodHandler 成员指向这些方法。 然后,客户端可以使用IOCTL_KS_METHOD请求和 KSMETHOD 结构对微型驱动程序处理的内核流式处理对象执行方法。 有关详细信息,请参阅 KS 方法

要求

要求
Header ks.h (包括 Ks.h)

另请参阅

KSFASTMETHOD_ITEM

KSMETHOD

KStrSupportHandler