共用方式為


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 佇列分派類型。 將此成員設定為 WdfIoQueueDispatchSequentialWdfIoQueueDispatchParallel,但不設定為 WdfIoQueueDispatchManualSPB_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 佇列的電源管理

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

另請參閱