다음을 통해 공유


SpbControllerSetIoOtherCallback 함수(spbcx.h)

SpbControllerSetIoOtherCallback 메서드는 SPB 컨트롤러 드라이버의 EvtSpbControllerIoOther 콜백 함수를 등록합니다.

통사론

void SpbControllerSetIoOtherCallback(
  [in]           WDFDEVICE                    FxDevice,
  [in]           PFN_SPB_CONTROLLER_OTHER     EvtSpbControllerIoOther,
  [in, optional] PFN_WDF_IO_IN_CALLER_CONTEXT EvtIoInCallerContext
);

매개 변수

[in] FxDevice

SPB 컨트롤러를 나타내는 디바이스 개체에 대한 WDFDEVICE 핸들입니다.

[in] EvtSpbControllerIoOther

EvtSpbControllerIoOther 콜백 함수에 대한 포인터입니다. SPB 컨트롤러 드라이버는 이 함수를 구현합니다. SPB 프레임워크 확장(SpbCx)은 이 함수를 호출하여 컨트롤러 드라이버에 I/O 제어 요청을 전달합니다. 이 함수에 전달되는 I/O 요청 유형에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.

[in, optional] EvtIoInCallerContext

I/O 컨트롤 요청이 컨트롤러의 I/O 큐에 처음 도착할 때 호출되는 EvtIoInCallerContext 콜백 함수에 대한 포인터이며 요청에는 SPB 프레임워크 확장(SpbCx)이 인식하지 못하는 IOCTL 코드가 포함됩니다. 이 콜백은 요청 시작자의 프로세스 컨텍스트에서 실행되며 나중에 EvtSpbControllerIoOther 콜백에서 처리할 요청을 전처리할 수 있습니다. 이 매개 변수는 선택 사항이며 이러한 전처리가 필요하지 않은 경우 NULL로 지정할 수 있습니다. 자세한 내용은 다음 설명 섹션을 참조하세요.

반환 값

없음

발언

이 메서드는 SPB 컨트롤러 드라이버가 버스별 또는 드라이버별 사용자 지정 I/O 제어 코드(IOCTL)에 대한 지원을 선언하는 방법을 제공합니다. SPB 컨트롤러 드라이버가 이 메서드를 호출하지 않으면 SpbCx는 이러한 모든 I/O 컨트롤 요청을 거부하며 SPB 컨트롤러 드라이버는 이러한 요청을 볼 수 없습니다.

SpbCx는 SPB 컨트롤러에 대한 I/O 큐를 관리합니다. 기본적으로 SpbCx가 지원하지 않는 IOCTL이 있는 I/O 제어 요청을 받으면 SpbCx는 오류 상태 코드 STATUS_INVALID_DEVICE_REQUEST 요청을 완료합니다.

그러나 spbControllerSetIoOtherCallback 호출하여 SPB 컨트롤러 드라이버는 SPB 프레임워크 확장(SpbCx)이 지원하지 않는 I/O 컨트롤 요청에 대한 지원을 선언합니다. 이 경우 SpbCx가 지원하지 않는 IOCTL 코드가 있는 I/O 컨트롤 요청을 받으면 SpbCx는 EvtSpbControllerIoOther 함수를 호출하여 처리를 위해 SPB 컨트롤러 드라이버에 요청을 전달합니다. SPB 컨트롤러 드라이버는 요청을 완료할 책임이 있습니다.

SpbCx에서 지원하는 IOCTL 목록은 SpbCx I/O 제어 코드참조하세요.

선택적 EvtIoInCallerContext 콜백 함수는 요청 시작자의 프로세스 컨텍스트에서 실행되며, 요청이 EvtSpbControllerIoOther 콜백 함수에 전달되기 전에 버퍼 포인터와 같은 컨텍스트 종속 요청 매개 변수를 전처리할 수 있습니다. EvtIoInCallerContext 함수가 호출되면 spbControllerSetRequestAttributes 대한 이전 호출에서 SPB 컨트롤러 드라이버가 요청한 요청별 컨텍스트가 이미 할당되고 요청에 할당됩니다.

SPB 컨트롤러 드라이버는 디바이스 개체를 커밋하기 전에 이 메서드를 호출해야 합니다. 즉, EvtDriverDeviceAdd 콜백에서 반환하거나 PDO를 컨트롤러의 자식 목록에 추가하기 전에 호출해야 합니다. 자식 목록은 버스에 연결된 디바이스를 나타냅니다. 자세한 내용은 버스디바이스 열거를 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 spbcx.h
라이브러리 Spbcxstubs.lib
IRQL PASSIVE_LEVEL

참고 항목

EvtIoInCallerContext

EvtSpbControllerIoOther

SpbControllerSetRequestAttributes