MINIPORT_DEVICE_PNP_EVENT_NOTIFY função de retorno de chamada (ndis.h)
O NDIS chama a função MiniportDevicePnPEventNotify de um driver de miniport para notificar o driver de eventos de Plug and Play (PnP).
Sintaxe
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MiniportDevicePnpEventNotify;
void MiniportDevicePnpEventNotify(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
Parâmetros
[in] MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx . O driver de miniporto usa essa área de contexto para manter informações de estado para um adaptador de miniporte.
[in] NetDevicePnPEvent
Um ponteiro para uma estrutura de NET_DEVICE_PNP_EVENT que descreve um evento de Plug and Play do dispositivo.
Retornar valor
Nenhum
Comentários
Um driver especifica o ponto de entrada MiniportDevicePnPEventNotify quando ele chama o Função NdisMRegisterMiniportDriver .
O NDIS chama a função MiniportDevicePnPEventNotify do driver com o membro DevicePnPEvent do parâmetro NetDevicePnPEvent definido como NdisDevicePnPEventPowerProfileChanged após um dos seguintes eventos:
- A inicialização do driver foi concluída.
- O driver recebeu uma notificação OID_PNP_SET_POWER que especifica o estado ativado ( NdisDeviceStateD0).
Quando um driver recebe uma notificação de remoção surpresa (o membro DevicePnPEvent do parâmetro NetDevicePnPEvent é NdisDevicePnPEventSurpriseRemoved), ele deve:
- Observe internamente que o dispositivo foi removido.
- Cancele todos os IRPs pendentes que ele enviou para o motorista de ônibus subjacente.
O NDIS chama MiniportDevicePnPEventNotify em IRQL = PASSIVE_LEVEL.
Exemplos
Para definir uma função MiniportDevicePnPEventNotify , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.Por exemplo, para definir uma função MiniportDevicePnPEventNotify chamada "MyDevicePnPEventNotify", use o tipo MINIPORT_DEVICE_PNP_EVENT_NOTIFY , conforme mostrado neste exemplo de código:
MINIPORT_DEVICE_PNP_EVENT_NOTIFY MyDevicePnPEventNotify;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
VOID
MyDevicePnPEventNotify(
NDIS_HANDLE MiniportAdapterContext,
PNET_DEVICE_PNP_EVENT NetDevicePnPEvent
)
{...}
O tipo de função MINIPORT_DEVICE_PNP_EVENT_NOTIFY é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função MINIPORT_DEVICE_PNP_EVENT_NOTIFY no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.
Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Plataforma de Destino | Windows |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | PASSIVE_LEVEL |
Regras de conformidade de DDI | NdisOidComplete |