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 |
참고 항목
- EvtSpbControllerIoRead
- EvtSpbControllerIoSequence
- EvtSpbControllerIoWrite
- EvtSpbControllerLock
- EvtSpbControllerUnlock
- EvtSpbTargetConnect
- EvtSpbTargetDisconnect
- IOCTL_SPB_EXECUTE_SEQUENCE
- IOCTL_SPB_LOCK_CONTROLLER
- IOCTL_SPB_UNLOCK_CONTROLLER
- IRP_MN_READ
- IRP_MN_WRITE
- SPB_CONTROLLER_CONFIG_INIT
- SpbDeviceInitialize
- spbRequestGetParameters
- WdfFdoInitSetFilter