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
KsSynchronousDeviceControl이 OutBuffer의 버퍼에 저장하는 데이터의 크기(바이트)를 수신하는 변수에 대한 포인터입니다.
반환 값
성공하면 NOERROR를 반환합니다. 그렇지 않으면 은 오류 코드를 반환합니다.
설명
KS 개체에 대한 핸들을 검색하려면 애플리케이션에서 IKsObject::KsGetObjectHandle 메서드를 호출해야 합니다.
애플리케이션은 다음과 같이 IoControl의 제어 코드와 InBuffer 및 OutBuffer의 버 퍼를 설정하여 수행할 작업을 지정할 수 있습니다.
- IoControl을 IOCTL_KS_PROPERTY 설정하여 속성에 액세스합니다. InBuffer를 설정하여 액세스할 속성 집합의 속성과 속성에 대한 정보를 검색할지 또는 속성의 정보를 설정할지를 지정하는 KSPROPERTY 구조를 가리킵니다. 속성에서 정보를 설정하려면 OutBuffer 를 해당 정보를 가리키도록 설정합니다. 속성에서 정보를 검색하려면 OutBuffer 를 설정하여 해당 정보를 받습니다.
- IoControl을 IOCTL_KS_METHOD 설정하여 메서드를 실행합니다. 실행하도록 설정된 메서드의 메서드와 메서드와 관련된 데이터를 읽거나 쓸지 여부를 지정하는 KSMETHOD 구조를 가리키도록 InBuffer를 설정합니다. 데이터를 읽으려면 OutBuffer 를 해당 데이터를 가리키도록 설정합니다. 데이터를 쓰려면 OutBuffer 를 설정하여 해당 데이터를 받습니다.
- IoControl을 IOCTL_KS_ENABLE_EVENT 설정하여 핸들로 지정된 KS 개체가 특정 이벤트 작업이 발생할 때마다 애플리케이션에 알리도록 요청합니다. InBuffer를 설정하여 알릴 이벤트 집합의 이벤트를 지정하는 KSEVENT 구조를 가리킵니다. 이벤트가 발생할 때 KS 개체가 애플리케이션에 알리는 방법을 설명하는 KSEVENTDATA 구조를 가리키도록 OutBuffer를 설정합니다. KS 이벤트도 참조하세요.
- IoControl을 IOCTL_KS_DISABLE_EVENT 설정하여 핸들로 지정된 KS 개체에 특정 이벤트 작업이 발생할 때마다 애플리케이션에 알리지 않도록 알립니다. 이벤트 알림 요청에서 이전에 사용된 KSEVENTDATA 구조를 가리키도록 InBuffer를 설정합니다.
KsSynchronousDeviceControl을 호출한 후 OutBuffer에는 Handle으로 지정된 개체에서 지원하는 집합 GUID 배열이 포함됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | ksproxy.h(Ksproxy.h 포함) |
라이브러리 | Ksproxy.lib |