UID | title | description | old-location | tech.root | ms.date | keywords | ms.keywords | req.header | req.include-header | req.target-type | req.target-min-winverclnt | req.target-min-winversvr | req.kmdf-ver | req.umdf-ver | req.ddi-compliance | req.unicode-ansi | req.idl | req.max-support | req.namespace | req.assembly | req.type-library | req.lib | req.dll | req.irql | targetos | req.typenames | f1_keywords | topic_type | api_type | api_location | api_name | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NF:ucmtcpciportcontroller.UcmTcpciPortControllerAlert |
UcmTcpciPortControllerAlert function (ucmtcpciportcontroller.h) |
Sends information about the hardware alerts that are received on the port controller to UcmTcpciCx. |
buses\ucmtcpciportcontrolleralert.htm |
usbref |
01/05/2022 |
|
UcmTcpciPortControllerAlert, UcmTcpciPortControllerAlert method [Buses], buses.ucmtcpciportcontrolleralert, ucmtcpciportcontroller/UcmTcpciPortControllerAlert |
ucmtcpciportcontroller.h |
Windows |
Windows 10 |
Windows Server 2016 |
<=DISPATCH_LEVEL |
Windows |
|
|
|
|
|
Sends information about the hardware alerts that are received on the port controller to UcmTcpciCx.
Handle to the port controller object that the client driver received in the previous call to UcmTcpciPortControllerCreate.
A pointer to an array of UCMTCPCI_PORT_CONTROLLER_ALERT_DATA that contains all current alerts that have not been sent to UcmTcpciCx. This value cannot be NULL.
The number of items in the array pointed to by AlertData. This value cannot be 0.
UcmTcpciPortControllerAlert returns STATUS_SUCCESS if the operation succeeds. Otherwise, this inline function may return an appropriate NTSTATUS error code.
The client driver must call UcmTcpciPortControllerAlert that has been previously started by calling UcmTcpciPortControllerStart.
When a hardware alert occurs, the client driver must determine the type of alerts, fetch any auxiliary information associated with that alert, such as a PD message, populate the array, and then call UcmTcpciPortControllerAlert.
The client driver must report the alerts sequentially. The driver must not call this method on threads that are running simultaneously as that can lead to race conditions. Even though the class extension ensures that all internal data is correctly lock-protected, if the driver calls UcmTcpciPortControllerAlert from multiple threads at the same time without any external synchronization, it is not guaranteed that set of received alerts is current. To avoid that scenario, the driver must call this method within the Interrupt Service Routine (ISR)or a DPC object that is queued for the ISR. The ISR should be synchronized correctly to have only one instance running at any given time.
The client driver must assume that the class extension may submit requests before UcmTcpciPortControllerAlert returns, from within this call.
When handling alerts, UcmTcpciCx may send hardware requests to the client driver before the UcmTcpciPortControllerAlert call returns. If the driver holds a lock while calling UcmTcpciPortControllerAlert and also attempts to acquire the same lock when handling the hardware request, deadlock can occur.