Escrevendo rotinas de expedição
O processamento de qualquer IRP (pacote de solicitação de E/S) começa em uma rotina de expedição que o driver registra para lidar com um código de função principal do IRP (IRP_MJ_*XXX). A rotina DriverEntry do driver exporta pontos de entrada para rotinas de expedição em uma tabela de expedição dentro da estrutura de DRIVER_OBJECT* do driver.
Um driver pode fornecer uma rotina de expedição separada para cada código de função de E/S principal que ele manipula. Como alternativa, as rotinas de expedição podem ser gravadas para lidar com vários códigos de função de E/S.
Esta seção contém os seguintes tópicos:
Funcionalidade de rotina de expedição
Rotinas de expedição necessárias
Rotinas de expedição opcionais
Quando verificar o local da pilha de E/S do driver
Rotinas DispatchCreate, DispatchClose e DispatchCreateClose
Rotinas DispatchRead, DispatchWrite e DispatchReadWrite
Rotinas DispatchDeviceControl e DispatchInternalDeviceControl
Rotinas DispatchQueryInformation
Rotinas DispatchSetInformation