Genel Çerçeve Nesnelerini Kullanma

Genel çerçeve nesnesi, diğer tüm çerçeve nesne türlerinin türetildiği çerçeve nesnesidir.

Diğer çerçeve nesneleri gibi, genel nesneler de Çerçeve Nesnelerine Giriş bölümünde açıklandığı üzere, bir başvuru sayısını, bağlam alanını, silme geri çağırma işlevlerini ve bir üst nesneyi destekler.

Sürücüler genel çerçeve nesneleri oluşturabilir ve kullanabilir. Sürücünüz genel nesneler oluşturmak için WdfObjectCreate'ı çağırırsa, sürücü şunları yapabilir:

  • Her genel nesne için bir veya daha fazla bağlam alanı oluşturun.

    Genel nesneyle ilişkilendirmek istediğiniz sistem kaynakları hakkındaki bilgileri depolamak için nesne bağlam alanını kullanabilirsiniz.

    Bağlam alanı hakkında daha fazla bilgi için bkz. Framework Nesne Bağlam Alanı.

  • Genel nesneye bir üst öğe atayın.

    Üst nesne silindiğinde genel nesne silinir. Örneğin, sürücünüz bir çerçeve cihaz nesnesini genel nesnelerinden birinin üst nesnesi olarak belirtiyorsa, çerçeve, cihaz nesnesini sildiğinde genel nesneyi siler.

    Sürücüler, nesnenin WDF_OBJECT_ATTRIBUTES yapısının ParentObject üyesini ayarlayarak nesnenin üst nesnesini belirtir.

  • Silme geri çağırma işlevlerini sağlayın.

    Sürücü, genel nesneyi oluştururken sürücünün ayırdığı sistem kaynaklarını serbest bırakabilen EvtCleanupCallback ve EvtDestroyCallback işlevlerini sağlayabilir. Örneğin, sürücü genel bir nesne oluştururken ExAllocatePool adlı bir sürücüyse, temizleme veya yok etme geri çağırma işlevi ExFreePool'u çağırabilir.

Genel nesneleri kullanmak, sürücüye ayrılan kaynakları yönetmek için kullanışlı bir yol olabilir. Örneğin, sürücü isteği birden çok cihaza gönderirse veya isteği birkaç küçük cihaza bölerse, daha üst düzey bir sürücü alınan G/Ç isteğini işlemek için birden çok bellek ayırması gerektirebilir. Sürücü, alınan G/Ç isteğinin alt öğeleri olan bir veya daha fazla genel nesne oluşturabilir ve bellek ayırmaları hakkındaki bilgileri genel nesnelerin bağlam alanında depolayabilir.