Função UcmTcpciPortControllerAlert (ucmtcpciportcontroller.h)
Envia informações sobre os alertas de hardware recebidos no controlador de porta para UcmTcpciCx.
Sintaxe
void UcmTcpciPortControllerAlert(
[in] UCMTCPCIPORTCONTROLLER PortControllerObject,
PUCMTCPCI_PORT_CONTROLLER_ALERT_DATA AlertData,
size_t NumberOfAlerts
);
Parâmetros
[in] PortControllerObject
Manipule para o objeto do controlador de porta que o driver cliente recebeu na chamada anterior para UcmTcpciPortControllerCreate.
AlertData
Um ponteiro para uma matriz de UCMTCPCI_PORT_CONTROLLER_ALERT_DATA que contém todos os alertas atuais que não foram enviados para UcmTcpciCx. Esse valor não pode ser NULL.
NumberOfAlerts
O número de itens na matriz apontada por AlertData. Esse valor não pode ser 0.
Retornar valor
Nenhum
Comentários
UcmTcpciPortControllerAlert retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, essa função embutida poderá retornar um código de erro NTSTATUS apropriado.
O driver do cliente deve chamar UcmTcpciPortControllerAlert que foi iniciado anteriormente chamando UcmTcpciPortControllerStart.
Quando ocorre um alerta de hardware, o driver do cliente deve determinar o tipo de alertas, buscar quaisquer informações auxiliares associadas a esse alerta, como uma mensagem PD, preencher a matriz e, em seguida, chamar UcmTcpciPortControllerAlert.
O driver do cliente deve relatar os alertas sequencialmente. O driver não deve chamar esse método em threads que estão sendo executados simultaneamente, pois isso pode levar a condições de corrida. Embora a extensão de classe garanta que todos os dados internos estejam corretamente protegidos por bloqueio, se o driver chamar UcmTcpciPortControllerAlert de vários threads ao mesmo tempo sem nenhuma sincronização externa, não é garantido que o conjunto de alertas recebidos seja atual. Para evitar esse cenário, o driver deve chamar esse método dentro do ISR ( Rotina de Serviço de Interrupção ) ou um objeto DPC enfileirado para o ISR. O ISR deve ser sincronizado corretamente para ter apenas uma instância em execução a qualquer momento.
O driver do cliente deve assumir que a extensão de classe pode enviar solicitações antes que UcmTcpciPortControllerAlert retorne, de dentro dessa chamada.
Ao lidar com alertas, UcmTcpciCx pode enviar solicitações de hardware para o driver cliente antes que a chamada ucmTcpciPortControllerAlert retorne. Se o driver mantiver um bloqueio ao chamar UcmTcpciPortControllerAlert e também tentar adquirir o mesmo bloqueio ao lidar com a solicitação de hardware, poderá ocorrer deadlock.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 |
Servidor mínimo com suporte | Windows Server 2016 |
Plataforma de Destino | Windows |
Cabeçalho | ucmtcpciportcontroller.h |
IRQL | <=DISPATCH_LEVEL |