Aracılığıyla paylaş


G/Ç İşlemi için Cihaz Programlama

Bir cihazı G/Ç işlemleri için programlayan SynchCritSection yordamlarını tasarlamak, yazmak ve çağırmak için aşağıdaki genel yönergeleri kullanın:

  • Cihazı G/Ç işlemleri için programlayan bir SynchCritSection yordamı, denetimi mümkün olan en kısa sürede döndürmelidir.

    Bu nedenle SynchCritSection yordamı yalnızca cihazı G/Ç için ayarlamak için gerekenleri yapmalıdır. Bu nedenle, sürücü tüm IRP ön işlemlerini gerçekleştirmeli, diğer sürücü yordamları için durum bilgilerini başlatmalıdır ve SynchCritSection yordamını çağırmadan önce donanım kaynaklarını almalıdır.

  • Bir cihaz sürücüsünün, cihazı programlamak için birden çok SynchCritSection yordamı olabilir.

    Örneğin, bir cihazın sürücüsü, okumayı başlatma isteği kurulumunu, belirli cihaz kontrol isteklerinin kurulumundan belirgin ölçüde farklı bir şekilde ele alıyorsa, her istek türü için cihazını programlamak amacıyla ayrı SynchCritSection rutinleri kullanabilir.

  • SynchCritSection rutinlerinin çalıştırılması sürücünün ISR'sinin yürütülmesini engellediğinden, her SynchCritSection rutininin kontrolü mümkün olan en kısa sürede döndürmesi gerekir.

    Tek, büyük, genel amaçlı bir SynchCritSection yordamını, hangi işlemleri gerçekleştireceğini veya hangi durum bilgilerini güncelleştireceğini belirlemek için bir switch deyimi veya birçok iç içe if..then..else deyimiyle yazmamalısınız. Öte yandan, yalnızca tek bir cihaz kaydını programlayan çok sayıda SynchCritSection yordamları yazmaktan kaçınmalısınız.