Rotinas de expedição necessárias

A maioria dos drivers deve lidar com as seguintes rotinas de expedição :

  • DispatchPnP

    IRP_MJ_PNP indica uma solicitação envolvendo reconhecimento de dispositivo PnP, configuração de hardware ou alocação de recursos. Normalmente, essas solicitações são enviadas para um driver de dispositivo do gerenciador PnP ou de um driver de nível mais alto estreitamente acoplado.

  • DispatchPower

    IRP_MJ_POWER indica uma solicitação relativa ao estado de energia do dispositivo ou do sistema. Essas solicitações são enviadas ao driver do dispositivo pelo power manager ou por um driver de nível mais alto acoplado.

  • DispatchCreate

    IRP_MJ_CREATE indica que um subsistema protegido pelo modo de usuário, possivelmente em nome de um aplicativo ou driver específico do subsistema, solicitou um identificador para o objeto de arquivo associado ao objeto de dispositivo de destino ou que um driver de nível superior está conectando ou anexando seu objeto de dispositivo ao objeto de dispositivo de destino.

  • DispatchClose

    IRP_MJ_CLOSE indica que o último identificador do objeto de arquivo associado ao objeto de dispositivo de destino foi fechado e liberado. Todas as solicitações de E/S foram concluídas ou canceladas, portanto, não há referências pendentes ao ponteiro do objeto de arquivo.

  • DispatchRead

    IRP_MJ_READ indica uma solicitação de E/S para transferir dados do dispositivo físico subjacente para o sistema.

  • DispatchWrite

    IRP_MJ_WRITE indica uma solicitação de E/S para transferir dados do sistema para o dispositivo físico subjacente.

  • DispatchDeviceControl

    IRP_MJ_DEVICE_CONTROL indica uma solicitação que contém um código de controle de E/S específico do tipo de dispositivo definido pelo sistema especificando uma operação específica do tipo de dispositivo. Os drivers de nível superior passam esses IRPs para os drivers de dispositivo subjacentes, que normalmente processam a solicitação acessando o dispositivo.

  • DispatchInternalDeviceControl

    IRP_MJ_INTERNAL_DEVICE_CONTROL indica uma solicitação enviada ao driver de dispositivo, na maioria dos casos, de um driver de nível mais alto acoplado, geralmente com um código de controle de E/S específico do driver, específico do driver e do dispositivo ou específico do dispositivo solicitando uma operação específica do tipo de dispositivo ou específica do dispositivo.

    Somente determinados tipos de drivers são necessários para lidar com solicitações de controle de E/S internas definidas pelo sistema, incluindo determinados drivers SCSI, drivers de dispositivo de teclado ou mouse e drivers paralelos que interoperam com drivers fornecidos pelo sistema.

  • DispatchSystemControl

    IRP_MJ_SYSTEM_CONTROL é usado para especificar solicitações WMI para drivers. Para obter mais informações sobre o WMI, consulte Instrumentação de Gerenciamento do Windows.

As rotinas de expedição que um driver deve fornecer variam de acordo com o tipo e a funcionalidade do dispositivo físico subjacente. Para obter informações específicas do tipo de dispositivo sobre os códigos de função principais do IRP que os drivers devem manipular, consulte a documentação específica do tipo de dispositivo no WDK (Kit de Driver do Windows).