Registrando e desregistrando um manipulador de região de operação
Um driver de função de dispositivo ACPI registra um manipulador de região de operação chamando RegisterOpRegionHandler e fornecendo as seguintes informações:
O objeto de dispositivo físico (PDO) que representa o dispositivo ACPI que define a região de operação.
O tipo de acesso, que pode ser cru ou cozido.
Para obter mais informações, consulte Acessando uma região de operação
O tipo de espaço de região.
O fornecedor deve especificar um valor definido pelo fornecedor de 0x80 para 0xFF. (Valores menores que 0x80 são definidos pela especificação acpi e são reservados para uso interno.)
Um ponteiro para o manipulador de região de operação do driver.
O driver ACPI acessa uma região de operação chamando o manipulador de região de operação do driver.
Um ponteiro para o contexto da região da operação.
O contexto da região de operação é específico do dispositivo e é usado apenas pelo driver de função. Quando o driver ACPI chama o manipulador de região de operação, ele passa o contexto da região de operação de volta para o manipulador. Normalmente, é a extensão de dispositivo do FDO (objeto de dispositivo funcional).
RegisterOpRegionHandler retorna um objeto de região de operação que o driver de função usa para identificar exclusivamente o manipulador de região de operação somente quando o driver desregistra o manipulador.
Normalmente, um driver registra um manipulador de região de operação na rotina de expedição Plug and Play do driver depois de iniciar um FDO em resposta a uma solicitação de IRP_MN_START_DEVICE. O driver deve registrar o manipulador depois de alocar o contexto de região de operação do manipulador. Se o driver criar uma interface de dispositivo definida pelo fornecedor, o driver deverá habilitar a interface do dispositivo depois de registrar o manipulador.
Um driver de função de dispositivo ACPI desregistre um manipulador de região de operação chamando DeRegisterOpRegionHandler e fornecendo as seguintes informações:
O PDO que representa o dispositivo ACPI que define a região de operação.
O objeto de região de operação que o driver ACPI retornou quando o driver registrou o manipulador de região de operação. Esse objeto identifica exclusivamente o manipulador de região de operação.
Normalmente, um driver desregistre um manipulador de região de operação na rotina de expedição Plug and Play do driver antes de interromper um FDO em resposta a uma solicitação de IRP_MN_STOP_DEVICE. O driver deve cancelar o registro do manipulador antes de liberar o contexto de região de operação do manipulador. Se o driver criar uma interface de dispositivo definida pelo fornecedor, o driver deverá desabilitar a interface do dispositivo antes de cancelar o registro do manipulador.