Manipulando um IRP ao qual a Estrutura não dá suporte

[Aplica-se somente ao KMDF]

A estrutura não dá suporte a solicitações de E/S que têm os seguintes códigos IRP principais:

Se a estrutura receber um IRP que contém um desses códigos de função de E/S, a estrutura não processará o IRP. Se o driver for um driver de filtro, a estrutura passará o IRP para o driver mais baixo na pilha de driver. Se o driver não for um driver de filtro, a estrutura chamará IoCompleteRequest para concluir o IRP com um valor status de STATUS_INVALID_DEVICE_REQUEST.

Se o driver precisar manipular IRPs que contenham qualquer um desses códigos de função de E/S, o driver deverá chamar a função de retorno de chamada de evento WdfDeviceInitAssignWdmIrpPreprocessCallback para registrar uma função de retorno de chamada de evento EvtDeviceWdmIrpPreprocess para um código de função de E/S.

Quando o driver recebe um IRP que contém um código de função de E/S para o qual o driver registrou uma função de retorno de chamada EvtDeviceWdmIrpPreprocess , a estrutura passa o IRP para a função de retorno de chamada. A função de retorno de chamada deve processar o IRP seguindo as regras do WDM para lidar com IRPs. O driver deve chamar IoCompleteRequest para concluir o IRP ou deve chamar IoCallDriver para passar o IRP para o driver inferior seguinte.

Para obter um exemplo de uma função de retorno de chamada EvtDeviceWdmIrpPreprocess que manipula um IRP ao qual a estrutura não dá suporte, consulte o driver de exemplo serial .