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) |