Aracılığıyla paylaş


Pil Bilgileri

Piller, kesintisiz güç kaynağı (UPS) üzerinde çalışan taşınabilir bilgisayarlar ve bilgisayarlar için güç sağlayabilir. Bu bilgisayarlarda işletim sistemi, uygulamaların kullanıcı için yararlı işlevler sağlayabilmesi için pilin durumu hakkında bilgi sağlar. (Bazı eski standart dışı pil sistemleri ve UPS'ler desteklenmez.)

Bu genel bakışın, cihaz yönetimibildiğiniz varsayıldığını unutmayın.

Pil durumu hakkında bilgi edinmek için, sistemdeki tüm güç kaynakları hakkında genel bilgiler döndüren GetSystemPowerStatusişlevini kullanın. Mümkün olduğunda getsystempowerstatus kullanmanız gerekir.

Ancak bazı durumlarda, her bir pil hakkında ayrıntılı bilgi gereklidir. Bu amaçla, her pil cihazı bir IOCTL arabirimini kullanıma sunar. Aşağıdaki IOCTL işlemleri DeviceIoControl işlevi kullanılarak gerçekleştirilir:

IOCTL_BATTERY_QUERY_INFORMATION
IOCTL_BATTERY_QUERY_STATUS
IOCTL_BATTERY_QUERY_TAG
IOCTL_BATTERY_SET_INFORMATION

Bu arabirimi kullanmak için bir uygulamanın birkaç adımı izlemesi gerekir. İlk olarak, pil sınıfı arabirimi olan tüm cihazları listelemek için kurulum yordamlarını kullanmalıdır. Bu cihazların sistemde mevcut olan pilleri değil pil bağlantı noktalarını temsil ettiğini unutmayın. Uygulamanın daha sonra cihaza istek göndermek için DeviceIoControl işlevini kullanabilmesi ve ardından eklenen piller için etiketler alabilmesi için her cihaza bir tanıtıcı açması gerekir. Bu adımları tamamladıktan sonra uygulama her pil cihazına sorgu gönderebilir.

Pil Etiketleri

Her pil cihazı, bir pilin yerleştirilebileceği bir yuvayı temsil ettiğinden, pilin ne zaman çıkarıldığını ve ne zaman yeniden yerleştirileceğini, değiştirildiğini veya başka bir şekilde değiştirildiğini belirlemenin bir yolu olmalıdır. Bunu yapmak için, belirli bir yuvadaki her pil bir etiket atanır. Bu etiket, bilgi için tüm sorgular için kullanılmalıdır. Uygulama tarafından sağlanan etiket pille eşleşmiyorsa sorgu başarısız olur ve uygulamaya pilin bir şekilde değiştiğini gösterir. Sorguyu başarıyla tamamlamak için yeni bir pil etiketi gerekir. IOCTL_BATTERY_QUERY_TAG işlemini kullanarak etiketi alın. Bu yuvada bir pil varsa, döndürülen etiket diğer işlevleri gerçekleştirmek için diğer pil IOCTL'lerinden herhangi birine geçirilebilir. Çok pilli bir sistemde, her pil cihazı (yuva) pil etiketlerini bağımsız olarak verir, bu nedenle iki ayrı cihazdan gelen etiket bazen aynı olabilir.

Pil etiketindeki bir değişiklik, pilin çıkarıldığı ve yeniden eklendiği veya değiştirildiği anlamına gelmez. Normalde statik olabilecek herhangi bir veride değişiklik olduğunda yeni bir etiket oluşturulabilir. Örneğin, bir pil şarj bittiğinde, son tam şarj kapasitesi değişmiş olabilir. Pil iletişiminin geçici olarak kaybolması veya BIOS'tan yanlış bir bildirim olması durumunda da etiket değişebilir. Bazı sistemlerde AC durumu değiştiğinde pil etiketi güncelleştirilebilir. Bu davranış, pil sisteminin bir özelliğinden kaynaklanır ve yaygın değildir.

Pil etiketi her güncelleştirildiğinde, pil yeni bir pilmiş gibi ele alınmalı ve önbelleğe alınan tüm veriler yeniden okunmalıdır. Bir uygulamanın aynı fiziksel pilin mevcut olup olmadığını bilmesi gerekiyorsa, BatteryUniqueID bilgi düzeyiyle çağrıldığında IOCTL_BATTERY_QUERY_INFORMATION çıkış arabelleğindeki BatteryUniqueID değerini denetlemelidir.

Power Management Hakkında

Pil Cihazlarını Numaralandırma