Partilhar via


IRP_MJ_INTERNAL_DEVICE_CONTROL

Em geral, qualquer substituição para um driver existente que dê suporte a solicitações de controle de dispositivo internas deve lidar com essa solicitação em uma rotina DispatchInternalDeviceControl . Esse driver deve dar suporte ao mesmo conjunto de códigos de controle de E/S internos que o driver que ele substitui. Caso contrário, os drivers de nível superior existentes podem não funcionar com o novo driver.

Os drivers que substituem determinados drivers de sistema de nível inferior são necessários para lidar com essa solicitação. Por exemplo, uma substituição para o driver de porta paralela do sistema deve continuar a dar suporte a drivers de classe paralela existentes. Observe que determinados drivers de sistema que lidam com essa solicitação não podem ser substituídos, em particular, pelo SCSI fornecido pelo sistema e pelos drivers de porta de vídeo.

Quando enviado

A qualquer momento após a conclusão bem-sucedida de uma solicitação de criação.

Parâmetros de Entrada

O código de controle de E/S está contido em Parameters.DeviceIoControl.IoControlCode no local da pilha de E/S do IRP.

Outros parâmetros de entrada dependem do valor do código de controle de E/S. Para obter mais informações, consulte Descrições de buffer para códigos de controle de E/S.

Parâmetros de saída

Os parâmetros de saída dependem do valor do código de controle de E/S. Para obter mais informações, consulte Descrições de buffer para códigos de controle de E/S.

Operação

Os drivers recebem IRP_MJ_INTERNAL_DEVICE_CONTROL solicitações quando outro driver chama IoBuildDeviceIoControlRequest ou IoAllocateIrp para criar uma solicitação.

Esse código de controle de E/S foi definido para comunicação entre drivers de modo kernel emparelhados e em camadas, como um ou mais drivers de classe em camadas sobre um driver de porta. O driver de nível superior configura IRPs com códigos de controle de E/S específicos do dispositivo ou do driver, solicitando suporte do driver inferior.

A operação solicitada é específica do dispositivo ou do driver.

Para obter informações gerais sobre códigos de controle de E/S para solicitações de IRP_MJ_DEVICE_CONTROL ou IRP_MJ_INTERNAL_DEVICE_CONTROL , consulte Usando códigos de controle de E/S. Confira também Solicitações de E/S de Type-Specific dispositivo.

Requisitos

parâmetro

Wdm.h (inclua Wdm.h, Ntddk.h ou Ntifs.h)

Confira também

DispatchInternalDeviceControl

IoAllocateIrp

IoBuildDeviceIoControlRequest