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 ao UcmTcpciCx. Esse valor não pode ser NULL.
NumberOfAlerts
O número de itens na matriz apontado por AlertData. Esse valor não pode ser 0.
Valor de retorno
Nenhum
Observações
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 de NTSTATUS apropriado.
O driver cliente deve chamar UcmTcpciPortControllerAlert que foi iniciada anteriormente chamando UcmTcpciPortControllerStart.
Quando ocorre um alerta de hardware, o driver 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 cliente deve relatar os alertas sequencialmente. O driver não deve chamar esse método em threads que estão em execução 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 há garantia de que o conjunto de alertas recebidos seja atual. Para evitar esse cenário, o driver deve chamar esse método no ISR ( de Rotina de Serviço de Interrupção) ou um objeto DPC que está na fila para o ISR. O ISR deve ser sincronizado corretamente para ter apenas uma instância em execução a qualquer momento.
O driver cliente deve assumir que a extensão de classe pode enviar solicitações antes de ucmTcpciPortControllerAlert retorna, de dentro dessa chamada.
Ao lidar com alertas, o 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 |
---|---|
de cliente com suporte mínimo | Windows 10 |
servidor com suporte mínimo | Windows Server 2016 |
da Plataforma de Destino | Windows |
cabeçalho | ucmtcpciportcontroller.h |
IRQL | <=DISPATCH_LEVEL |