KsSynchronousDeviceControl 함수(ksproxy.h)

KsSynchronousDeviceControl 함수는 파일 핸들로 지정된 KS 개체에 동기 디바이스 I/O 제어 작업을 실행합니다.

구문

KSDDKAPI HRESULT KsSynchronousDeviceControl(
  [in]            HANDLE Handle,
  [in]            ULONG  IoControl,
  [in, optional]  PVOID  InBuffer,
  [in]            ULONG  InLength,
  [out, optional] PVOID  OutBuffer,
  [in]            ULONG  OutLength,
  [in, out]       PULONG BytesReturned
);

매개 변수

[in] Handle

작업을 수행할 KS 개체에 대한 핸들입니다.

[in] IoControl

KS 개체에서 수행할 특정 작업 유형을 식별하는 제어 코드입니다.

[in, optional] InBuffer

수행할 작업을 지정하는 데이터가 포함된 버퍼에 대한 포인터입니다.

[in] InLength

InBuffer의 버퍼 크기(바이트)입니다.

[out, optional] OutBuffer

작업에 대한 데이터를 포함하는 버퍼 또는 작업에 대한 데이터를 수신하는 버퍼 공간에 대한 포인터입니다.

[in] OutLength

OutBuffer의 버퍼 크기(바이트)입니다.

[in, out] BytesReturned

KsSynchronousDeviceControlOutBuffer의 버퍼에 저장하는 데이터의 크기(바이트)를 수신하는 변수에 대한 포인터입니다.

반환 값

성공하면 NOERROR를 반환합니다. 그렇지 않으면 은 오류 코드를 반환합니다.

설명

KS 개체에 대한 핸들을 검색하려면 애플리케이션에서 IKsObject::KsGetObjectHandle 메서드를 호출해야 합니다.

애플리케이션은 다음과 같이 IoControl의 제어 코드와 InBuffer 및 OutBuffer의 버 퍼를 설정하여 수행할 작업을 지정할 수 있습니다.

  • IoControlIOCTL_KS_PROPERTY 설정하여 속성에 액세스합니다. InBuffer를 설정하여 액세스할 속성 집합의 속성과 속성에 대한 정보를 검색할지 또는 속성의 정보를 설정할지를 지정하는 KSPROPERTY 구조를 가리킵니다. 속성에서 정보를 설정하려면 OutBuffer 를 해당 정보를 가리키도록 설정합니다. 속성에서 정보를 검색하려면 OutBuffer 를 설정하여 해당 정보를 받습니다.
  • IoControlIOCTL_KS_METHOD 설정하여 메서드를 실행합니다. 실행하도록 설정된 메서드의 메서드와 메서드와 관련된 데이터를 읽거나 쓸지 여부를 지정하는 KSMETHOD 구조를 가리키도록 InBuffer를 설정합니다. 데이터를 읽으려면 OutBuffer 를 해당 데이터를 가리키도록 설정합니다. 데이터를 쓰려면 OutBuffer 를 설정하여 해당 데이터를 받습니다.
  • IoControlIOCTL_KS_ENABLE_EVENT 설정하여 핸들로 지정된 KS 개체가 특정 이벤트 작업이 발생할 때마다 애플리케이션에 알리도록 요청합니다. InBuffer를 설정하여 알릴 이벤트 집합의 이벤트를 지정하는 KSEVENT 구조를 가리킵니다. 이벤트가 발생할 때 KS 개체가 애플리케이션에 알리는 방법을 설명하는 KSEVENTDATA 구조를 가리키도록 OutBuffer를 설정합니다. KS 이벤트도 참조하세요.
  • IoControlIOCTL_KS_DISABLE_EVENT 설정하여 핸들로 지정된 KS 개체에 특정 이벤트 작업이 발생할 때마다 애플리케이션에 알리지 않도록 알립니다. 이벤트 알림 요청에서 이전에 사용된 KSEVENTDATA 구조를 가리키도록 InBuffer를 설정합니다.
필터에서 지원하는 모든 속성, 이벤트 또는 메서드 목록을 검색하기 위해 애플리케이션은 IoControl 을 IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT 또는 IOCTL_KS_METHOD 설정할 수 있습니다. InBuffer가 가리키는 KSPROPERTY, KSEVENT 또는 KSMETHOD 구조체의 경우 Set 멤버를 GUID_NULL 설정하고 Flags 멤버를 KSPROPERTY_TYPE_SETSUPPORT 설정합니다.

KsSynchronousDeviceControl을 호출한 후 OutBuffer에는 Handle으로 지정된 개체에서 지원하는 집합 GUID 배열이 포함됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ksproxy.h(Ksproxy.h 포함)
라이브러리 Ksproxy.lib

추가 정보

IKsObject::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY