다음을 통해 공유


KsPinDataIntersectionEx 함수(ks.h)

KsPinDataIntersectionEx 함수는 콜백 함수를 통해 KSPROPERTY_PIN_DATAINTERSECTION 처리합니다.

구문

KSDDKAPI NTSTATUS KsPinDataIntersectionEx(
  [in]           PIRP                    Irp,
  [in]           PKSP_PIN                Pin,
  [out]          PVOID                   Data,
  [in]           ULONG                   DescriptorsCount,
  [in]           const KSPIN_DESCRIPTOR  *Descriptor,
  [in]           ULONG                   DescriptorSize,
  [in, optional] PFNKSINTERSECTHANDLEREX IntersectHandler,
  [in, optional] PVOID                   HandlerContext
);

매개 변수

[in] Irp

속성 요청을 설명하는 IRP를 지정합니다.

[in] Pin

쿼리할 특정 속성을 지정합니다.

[out] Data

pin 속성별 데이터를 지정합니다.

[in] DescriptorsCount

설명자 구조체의 수를 지정합니다.

[in] Descriptor

핀 정보 구조 목록에 대한 포인터를 지정합니다.

[in] DescriptorSize

설명자 구조체의 크기(바이트)입니다.

[in, optional] IntersectHandler

데이터 범위를 비교하는 선택적 미니드라이버 정의 KStrIntersectHandlerEx 콜백 함수를 포함합니다.

[in, optional] HandlerContext

처리기에 제공되는 선택적 컨텍스트입니다.

반환 값

STATUS_SUCCESS 반환합니다. 그렇지 않으면 처리 중인 속성과 관련된 오류입니다.

설명

KsPinDataIntersectionEx 는 다음과 같은 약간의 차이점을 제외하고 KsPinDataIntersection과 매우 유사합니다.

  • KsPinDataIntersectionEx에서는 확장 설명자를 허용하는 기능인 설명자의 크기가 전달됩니다.
  • 데이터 교차 콜백 함수는 확장 버전(NTSTATUS 콜백(Context, Irp, Pin, DataRange, MatchingDataRange, DataBufferSize, Data, DataSize))과 KsPinDataIntersection (NTSTATUS 콜백(Irp, Pin, DataRange, Data))에서 다르게 프로토타입화됩니다.
  • 출력 버퍼(데이터) 길이는 현재 I/O 스택 위치에서 추출되지 않고 데이터 교차 콜백 함수(DataBufferSize)에 매개 변수로 전달됩니다.
  • 데이터 교차 콜백 함수는 Context 매개 변수(KsPinDataIntersectionEx에 전달된 동일한 Context 매개 변수)를 전달합니다.
  • 결과 형식의 크기는 Irp->IoStatus.Information 대신 DataSize로 다시 전달됩니다.
KsPinDataIntersection 및 KsPinDataIntersectionEx를 제외한 이러한 차이점은 유사하게 작동합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ks.h(Ks.h 포함)

추가 정보

KStrIntersectHandlerEx