Compartilhar via


Função WdfDeviceInitRegisterPnpStateChangeCallback (wdfdevice.h)

[Aplica-se somente ao KMDF]

Observação

Esse método é apenas para uso interno da Microsoft.

O método WdfDeviceInitRegisterPnpStateChangeCallback registra uma função de retorno de chamada de evento fornecida pelo driver que a estrutura chama quando a máquina de estado Plug and Play do dispositivo muda de estado.

Sintaxe

NTSTATUS WdfDeviceInitRegisterPnpStateChangeCallback(
  [in] PWDFDEVICE_INIT                              DeviceInit,
  [in] WDF_DEVICE_PNP_STATE                         PnpState,
  [in] PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
  [in] ULONG                                        CallbackTypes
);

Parâmetros

[in] DeviceInit

Um ponteiro fornecido pelo chamador para uma estrutura WDFDEVICE_INIT .

[in] PnpState

Um enumerador WDF_DEVICE_PNP_STATE que identifica o estado do computador Plug and Play para o qual o driver está solicitando notificação.

[in] EvtDevicePnpStateChange

Um ponteiro fornecido pelo chamador para a função de retorno de chamada de evento EvtDevicePnpStateChange do driver.

[in] CallbackTypes

Uma combinação ORed de enumeradores com tipo WDF_STATE_NOTIFICATION_TYPE.

Retornar valor

Se a operação for bem-sucedida, WdfDeviceInitRegisterPnpStateChangeCallback retornará STATUS_SUCCESS. Os valores de retorno adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro inválido foi detectado.
STATUS_INSUFFICIENT_RESOURCES
Não há memória suficiente para concluir a operação.

Comentários

Se o driver chamar WdfDeviceInitRegisterPnpStateChangeCallback, ele deverá fazer isso antes de chamar WdfDeviceCreate.

Para obter mais informações sobre WdfDeviceInitRegisterPnpStateChangeCallback, consulte State Machines in the Framework.

Exemplos

O exemplo de código a seguir registra uma função de retorno de chamada de evento que a estrutura chamará quando a máquina de estado Plug and Play do dispositivo mudar de estado.

status = WdfDeviceInitRegisterPnpStateChangeCallback(
                                                     DeviceInit,
                                                     WdfDevStatePnpEjectFailed,
                                                     MyDrvPnPStateChangeCallback,
                                                     StateNotificationAllStates
                                                     );

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

Confira também

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE