Partilhar via


Usando objetos da estrutura geral

O objeto framework geral é o objeto framework do qual todos os outros tipos de objetos framework são derivados.

Como outros objetos de estrutura, os objetos gerais suportam uma contagem de referência, espaço de contexto, funções de retorno de chamada de exclusão e um objeto pai, conforme descrito em Introdução aos objetos do Framework.

Os drivers podem criar e usar objetos de estrutura geral. Se o driver chamar WdfObjectCreate para criar objetos gerais, o driver poderá:

  • Crie um ou mais espaços de contexto para cada objeto geral.

    Você pode usar o espaço de contexto do objeto para armazenar informações sobre os recursos do sistema que deseja associar ao objeto geral.

    Para obter mais informações sobre espaço de contexto, consulte Framework Object Context Space.

  • Atribua um pai ao objeto geral.

    O objeto geral será excluído quando o objeto pai for excluído. Por exemplo, se o driver especificar um objeto de dispositivo estrutura como o objeto pai de um de seus objetos genéricos, a estrutura excluirá o objeto genérico quando excluir o objeto de dispositivo.

    Os drivers especificam o objeto pai de um objeto definindo o membro ParentObject da estrutura WDF_OBJECT_ATTRIBUTES do objeto.

  • Forneça funções de retorno de chamada de exclusão.

    O driver pode fornecer funções EvtCleanupCallback e EvtDestroyCallback , que podem desalocar recursos do sistema que o driver alocou quando criou o objeto geral. Por exemplo, se o driver chamou ExAllocatePool quando criou um objeto geral, a função de retorno de chamada de limpeza ou destruição pode chamar ExFreePool.

O uso de objetos gerais pode ser uma maneira conveniente de gerenciar recursos alocados por driver. Por exemplo, um driver de nível superior pode exigir várias alocações de memória para processar uma solicitação de E/S recebida, se o driver enviar a solicitação para vários dispositivos ou dividir a solicitação em vários dispositivos menores. O driver pode criar um ou mais objetos gerais que são filhos da solicitação de E/S recebida e pode armazenar informações sobre as alocações de memória no espaço de contexto dos objetos gerais.