다음을 통해 공유


SPB_CONTROLLER_CONFIG 구조체(spbcx.h)

SPB_CONTROLLER_CONFIG 구조에는 SPB 컨트롤러 드라이버에 대한 구성 설정이 포함되어 있습니다.

통사론

typedef struct _SPB_CONTROLLER_CONFIG {
  ULONG                       Size;
  WDF_IO_QUEUE_DISPATCH_TYPE  ControllerDispatchType;
  WDF_TRI_STATE               PowerManaged;
  PFN_SPB_TARGET_CONNECT      EvtSpbTargetConnect;
  PFN_SPB_TARGET_DISCONNECT   EvtSpbTargetDisconnect;
  PFN_SPB_CONTROLLER_LOCK     EvtSpbControllerLock;
  PFN_SPB_CONTROLLER_UNLOCK   EvtSpbControllerUnlock;
  PFN_SPB_CONTROLLER_READ     EvtSpbIoRead;
  PFN_SPB_CONTROLLER_WRITE    EvtSpbIoWrite;
  PFN_SPB_CONTROLLER_SEQUENCE EvtSpbIoSequence;
} SPB_CONTROLLER_CONFIG, *PSPB_CONTROLLER_CONFIG;

회원

Size

이 구조체의 크기(바이트)입니다. SpbDeviceInitialize 메서드는 이 매개 변수 값을 사용하여 사용 중인 구조체 버전을 결정합니다.

ControllerDispatchType

컨트롤러 드라이버에 대한 I/O 큐의 디스패치 형식입니다. 이 멤버를 WdfIoQueueDispatchSequential 또는 WdfIoQueueDispatchParallel WdfIoQueueDispatchManual 않도록 설정합니다. SPB_CONTROLLER_CONFIG_INIT 함수는 WdfIoQueueDispatchSequential 이 멤버를 기본값으로 초기화합니다. 이러한 디스패치 형식에 대한 자세한 내용은 I/O 큐예제 사용을 참조하세요.

하위 모드에서 작동하는 컨트롤러 드라이버는 이 멤버를 WdfIoQueueDispatchParallel 설정해야 합니다. 예를 들어 I2C 컨트롤러는 SPI 버스에 주변 장치로 연결될 수 있습니다. 이 디바이스는 I2C 버스의 마스터 역할을 하지만 SPI 버스의 종속입니다.

PowerManaged

컨트롤러 드라이버의 I/O 큐를 전원 관리해야 하는지 여부입니다. 이 멤버를 WdfTrue 설정하여 큐를 전원 관리해야 함을 나타냅니다. 이 멤버를 WdfFalse 설정하여 큐가 전원 관리되지 않아야 함을 나타냅니다. 이 멤버가 WdfDefault 설정되면 드라이버가 호출자를 상위 수준 또는 하위 수준 필터 드라이버로 식별하는 WdfFdoInitSetFilter 메서드를 호출하지 않는 한 큐가 전원 관리됩니다. SPB_CONTROLLER_CONFIG_INIT 함수는 이 멤버를 WdfDefault초기화합니다.

전원 관리 큐에서 I/O 요청을 사용할 수 있는 경우 프레임워크는 디바이스가 작동 중(D0) 상태인 경우에만 드라이버에 요청을 전달합니다. 자세한 내용은 I/O 큐 대한Power Management를 참조하세요.

EvtSpbTargetConnect

EvtSpbTargetConnect 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. EvtSpbTargetConnect 멤버는 선택 사항이며 NULL일 수 있습니다.

EvtSpbTargetDisconnect

EvtSpbTargetDisconnect 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. EvtSpbTargetDisconnect 멤버는 선택 사항이며 NULL일 수 있습니다.

EvtSpbControllerLock

EvtSpbControllerLock 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. EvtSpbControllerLock 멤버는 선택 사항이며 NULL일 수 있습니다. EvtSpbControllerLock 함수에 대한 자세한 내용은 처리 Client-Implemented 시퀀스참조하세요.

EvtSpbControllerUnlock

EvtSpbControllerUnlock 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. EvtSpbControllerUnlock 함수에 대한 자세한 내용은 처리 Client-Implemented 시퀀스참조하세요.

EvtSpbIoRead

EvtSpbControllerIoRead 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. 이 멤버는 선택 사항이 아니며 NULL이 아니어야 합니다.

EvtSpbIoWrite

EvtSpbControllerIoWrite 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. 이 멤버는 선택 사항이 아니며 NULL이 아니어야 합니다.

EvtSpbIoSequence

EvtSpbControllerIoSequence 콜백 함수에 대한 포인터입니다. 이 함수는 SPB 컨트롤러 드라이버에 의해 구현됩니다. 이 멤버는 선택 사항이 아니며 NULL이 아니어야 합니다.

발언

SpbDeviceInitialize 메서드는 이 구조의 정보를 사용하여 SPB 컨트롤러의 초기화를 완료합니다. spbDeviceInitialize 이 구조를 전달하기 전에 SPB_CONTROLLER_CONFIG_INIT 함수를 호출하여 이 구조체의 멤버를 기본값으로 초기화하고 필요에 따라 이러한 기본값을 SPB 컨트롤러 드라이버와 관련된 정보로 덮어씁니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8부터 지원됩니다.
헤더 spbcx.h

참고 항목