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).

Nota Você deve declarar a função usando o tipo MINIPORT_DEVICE_PNP_EVENT_NOTIFY . Para obter mais informações, consulte a seção Exemplos a seguir.
 

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).
No segundo caso, o valor em InformationBuffer indica se o sistema está em execução na energia da bateria (NdisPowerProfileBattery) ou na energia AC (NdisPowerProfileAcOnline). Um driver pode usar essas informações para ajustar o consumo de energia do adaptador de miniporto especificado. Por exemplo, o driver de um dispositivo LAN sem fio poderá reduzir o consumo de energia se o sistema estiver em execução na energia da bateria ou aumentar o consumo de energia se o sistema estiver em execução na energia AC.

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.
Depois que o NDIS chama a função MiniportDevicePnPEventNotify para indicar uma remoção surpresa, o NDIS chama a função MiniportHaltEx do driver. Se o driver receber solicitações de envio ou solicitações OID antes de chamar o NDIS MiniportHaltEx, ele deverá concluir imediatamente essas solicitações com um valor status de NDIS_STATUS_NOT_ACCEPTED.

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

Confira também

MiniportHaltEx

MiniportInitializeEx

NET_DEVICE_PNP_EVENT

NdisMRegisterMiniportDriver

OID_PNP_SET_POWER