KSMETHOD_ITEM structure (ks.h)
The KSMETHOD_ITEM structure describes a single method within a method set.
Syntax
typedef struct {
ULONG MethodId;
union {
PFNKSHANDLER MethodHandler;
BOOLEAN MethodSupported;
};
ULONG MinMethod;
ULONG MinData;
PFNKSHANDLER SupportHandler;
ULONG Flags;
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;
Members
MethodId
Specifies the identifier of this method within its method set.
MethodHandler
Pointer to a minidriver-supplied KStrMethodHandler callback routine.
MethodSupported
Specifies if this method is supported or not.
MinMethod
Specifies the minimum size of buffer required to specify the method completely. This size is at least sizeof(KSMETHOD) bytes.
MinData
Specifies the minimum size buffer required to specify the method data buffer. This buffer is used to read and/or write information related to the method.
SupportHandler
Pointer to a minidriver-supplied KStrSupportHandler callback routine.
Flags
Specifies the request type of this method request.
Value | Type of method request |
---|---|
KSMETHOD_TYPE_NONE | Indicates that the Data buffer of the handler is not expected to be used. For buffered methods, although space is allocated, no data is copied to or from the system buffer. When in source mode (KSMETHOD_TYPE_SOURCE), no MDL is created. |
KSMETHOD_TYPE_READ | Indicates that parameters are expected to be read from the Data buffer of the handler. When buffered, data is copied to the system buffer. When in source mode, the data is probed and locked for IoReadAccess. |
KSMETHOD_TYPE_WRITE | Indicates that parameters are expected to be written to the Data buffer of the handler. When buffered, data is copied from the system buffer. When in source mode, the data is probed and locked for IoWriteAccess. |
KSMETHOD_TYPE_MODIFY | Indicates that parameters are expected to be read and written to the Data buffer of the handler. The data passed in is overwritten by the data returned. This might imply that a structure passed in could be merely updated. When buffered, the data is copied to the system buffer, and copied back when the IRP is completed. When in source mode, the data is probed and locked for IoModifyAccess. |
KSMETHOD_TYPE_SOURCE | Indicates that the method is to be processed in source mode. An MDL is allocated and the data is probed and locked. To indicate a buffered method, OR this flag with other flags from this list. |
Remarks
A minidriver uses the KSMETHOD_ITEM structure to define methods in a method set. The minidriver implements methods and uses the MethodHandler member to point to these methods. A client can then use the IOCTL_KS_METHOD request along with the KSMETHOD structure to execute methods on a kernel streaming object that the minidriver handles. For more information, see KS Methods.
Requirements
Requirement | Value |
---|---|
Header | ks.h (include Ks.h) |