共用方式為


UcmTcpciPortControllerAlert 函式 (ucmtcpciportcontroller.h)

將埠控制器上收到的硬體警示相關信息傳送至UcmTcpciCx。

語法

void UcmTcpciPortControllerAlert(
  [in] UCMTCPCIPORTCONTROLLER               PortControllerObject,
       PUCMTCPCI_PORT_CONTROLLER_ALERT_DATA AlertData,
       size_t                               NumberOfAlerts
);

參數

[in] PortControllerObject

處理客戶端驅動程式在先前呼叫 UcmTcpciPortControllerCreate中所收到的埠控制器物件。

AlertData

UCMTCPCI_PORT_CONTROLLER_ALERT_DATA 陣列的指標 ,其中包含尚未傳送至UcmTcpciCx的所有目前警示。 此值不可為 NULL。

NumberOfAlerts

AlertData 所指向數位中的項目數。 這個值不能是 0。

傳回值

備註

如果作業成功,UcmTcpciPortControllerAlert 會傳回STATUS_SUCCESS。 否則,此內嵌函式可能會傳回適當的 NTSTATUS 錯誤碼。

用戶端驅動程序必須呼叫先前由呼叫 UcmTcpciPortControllerStart 啟動的 UcmTcpciPortControllerAlert

發生硬體警示時,客戶端驅動程序必須判斷警示類型、擷取與該警示相關聯的任何輔助資訊,例如 PD 訊息、填入數位,然後呼叫 UcmTcpciPortControllerAlert

用戶端驅動程序必須循序報告警示。 驅動程式不得在同時執行的線程上呼叫這個方法,因為這可能會造成競爭狀況。 即使類別延伸模組可確保所有內部數據都受到正確鎖定保護,如果驅動程式同時從多個線程呼叫 UcmTcpciPortControllerAlert 而不需任何外部同步處理,則不保證一組已接收的警示是最新的。 若要避免這種情況,驅動程式必須在 中斷服務例程 (ISR) 或排入 ISR 佇列的 DPC 物件 內呼叫此方法。 ISR 應該正確同步處理,以便在任何指定時間只執行一個實例。

用戶端驅動程序必須假設類別延伸模組可能會在 UcmTcpciPortControllerAlert 從這個呼叫內傳回之前提交要求。

處理警示時, UcmTcpciCx 可能會在UcmTcpciPortControllerAlert 呼叫傳回之前,將硬體要求傳送給客戶端驅動程式。 如果驅動程式在呼叫 UcmTcpciPortControllerAlert 時保留鎖定,而且也會嘗試在處理硬體要求時取得相同的鎖定,就會發生死結。

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
目標平台 Windows
標頭 ucmtcpciportcontroller.h
IRQL <=DISPATCH_LEVEL

另請參閱