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
메서드를 완전히 지정하는 데 필요한 최소 버퍼 크기를 지정합니다. 이 크기는 적어도 sizeof(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 멤버를 사용하여 이러한 메서드를 가리킵니다. 그런 다음 클라이언트는 KSMETHOD 구조와 함께 IOCTL_KS_METHOD 요청을 사용하여 미니 드라이버가 처리하는 커널 스트리밍 개체에서 메서드를 실행할 수 있습니다. 자세한 내용은 KS 메서드를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ks.h(Ks.h 포함) |