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

추가 정보

KSFASTMETHOD_ITEM

KSMETHOD

KStrSupportHandler