Skip to content

Latest commit

 

History

History
79 lines (60 loc) · 3.98 KB

nf-ucmtcpciportcontroller-ucmtcpciportcontrolleralert.md

File metadata and controls

79 lines (60 loc) · 3.98 KB
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 function
UcmTcpciPortControllerAlert, UcmTcpciPortControllerAlert method [Buses], buses.ucmtcpciportcontrolleralert, ucmtcpciportcontroller/UcmTcpciPortControllerAlert
ucmtcpciportcontroller.h
Windows
Windows 10
Windows Server 2016
<=DISPATCH_LEVEL
Windows
UcmTcpciPortControllerAlert
ucmtcpciportcontroller/UcmTcpciPortControllerAlert
APIRef
kbSyntax
HeaderDef
ucmtcpciportcontroller.h
UcmTcpciPortControllerAlert

UcmTcpciPortControllerAlert function

-description

Sends information about the hardware alerts that are received on the port controller to UcmTcpciCx.

-parameters

-param PortControllerObject [in]

Handle to the port controller object that the client driver received in the previous call to UcmTcpciPortControllerCreate.

-param AlertData

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.

-param NumberOfAlerts

The number of items in the array pointed to by AlertData. This value cannot be 0.

-remarks

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.

-see-also