Função IoGetLowerDeviceObject (ntifs.h)

A rotina IoGetLowerDeviceObject retorna um ponteiro para o próximo objeto de dispositivo de nível inferior na pilha do driver.

Sintaxe

PDEVICE_OBJECT IoGetLowerDeviceObject(
  [in] PDEVICE_OBJECT DeviceObject
);

Parâmetros

[in] DeviceObject

Um ponteiro para o objeto de dispositivo na pilha para o qual o objeto de dispositivo de nível inferior próximo deve ser retornado.

Retornar valor

IoGetLowerDeviceObject retorna um ponteiro para o próximo objeto de dispositivo de nível inferior na pilha do driver.

Comentários

Dado um ponteiro para um objeto de dispositivo em um sistema de arquivos ou pilha de driver de dispositivo, IoGetLowerDeviceObject retorna um ponteiro para o próximo objeto de dispositivo de nível inferior na pilha.

IoGetLowerDeviceObject retornará NULL se:

  • O próximo driver de nível inferior não é carregado.

  • O próximo driver de nível inferior está sendo descarregado, removido ou excluído no momento.

  • O objeto de dispositivo apontado por DeviceObject é o objeto de dispositivo mais baixo na pilha do driver.

Um driver de filtro do sistema de arquivos normalmente usa IoGetLowerDeviceObject para determinar se ele já está anexado à pilha do driver de filtro encadeada acima de um determinado objeto de dispositivo do sistema de arquivos. Primeiro, o filtro chama IoGetAttachedDeviceReference para obter um ponteiro para o objeto de dispositivo mais alto da pilha. Em seguida, ele chama IoGetLowerDeviceObject repetidamente para percorrer a pilha do driver, verificando cada objeto do dispositivo para ver se o objeto pertence ao driver de filtro.

IoGetLowerDeviceObject incrementa a contagem de referência no próximo objeto de dispositivo de nível inferior se houver um. Portanto, cada chamada para IoGetLowerDeviceObject que não retorna NULL deve ser correspondida por uma chamada subsequente ObDereferenceObject.

Requisitos

Requisito Valor
Cliente mínimo com suporte Pacote cumulativo de atualizações do Windows 2000 SP4; Windows XP
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Confira também

IoGetAttachedDevice

IoGetAttachedDeviceReference

ObDereferenceObject