Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows 8'den başlayarak sürücüler, cihazların D3cold özelliklerini belirlemek ve bu cihazların D3cold kullanmasını sağlamak için GUID_D3COLD_SUPPORT_INTERFACE arabirimindeki yordamları çağırabilir. Bu arabirimdeki iki birincil yordam SetD3ColdSupport ve GetIdleWakeInfo.
GUID_D3COLD_SUPPORT_INTERFACE sürücü arabirimi, D3 cihaz güç durumunun D3cold alt durumu için destek sağlar. D3, D3hot ve D3cold olmak üzere iki alt eyalete ayrılır. D3, en düşük güçle çalışan cihaz güç durumudur ve D3cold, D3hot'tan daha az güç kullanır. Bir cihaz yalnızca cihaz, ana veri yolu sürücüsü ve platform üretici yazılımı bu durumu destekliyorsa D3cold durumuna girebilir. D3cold'yi destekleyen bir cihaz, bilgisayar S0 (çalışıyor) sistem güç durumundayken bu duruma girebilir ve bu durumdan çıkabilir.
Cihazın güç ilkesi sahibi (PPO) olan sürücü, aşağıdakileri yapmak için bu arabirimdeki yordamları çağırır:
- Cihazın, üst veri yolu sürücüsünün ve platform üretici yazılımının D3cold alt durumuna geçişleri destekleyip desteklemediğini keşfedin.
- Cihaz D3cold alt durumundayken cihazın işlemciye bir uyandırma olayı sinyali verip veremeyeceğini keşfedin.
- Cihaz tarafından D3cold alt durumuna geçişleri etkinleştirin ve devre dışı bırakın.
Bu arabirimi sorgulamak için, cihaz sürücüsü sürücü yığınının aşağısına bir IRP_MN_QUERY_INTERFACE IRP gönderir. Bu IRP için sürücü InterfaceType giriş parametresini GUID_D3COLD_SUPPORT_INTERFACE olarak ayarlar. IRP başarıyla tamamlandığında, Arabirim çıkış parametresi D3COLD_SUPPORT_INTERFACE bir yapıya yönelik bir işaretçidir. Bu yapı, arabirimdeki yordamlara yönelik işaretçiler içerir.
D3cold cihaz güç durumu hakkında daha fazla bilgi için "Sürücüde D3cold'ı Destekleme " bölümüne bakın.
Sürücü, bilgisayar S0 durumundayken bir cihazın D3cold'a geçişlerini dinamik olarak etkinleştirmek ve devre dışı bırakmak için SetD3ColdSupport yordamını çağırır. Cihazın girdiği herhangi bir düşük güç Dx durumundan bir uyandırma olayını sinyal verebilmesi gerekiyorsa, sürücü, cihazın D3cold'a girmesine yalnızca cihaz D3cold'dan uyandırma olaylarını sinyal edebiliyorsa izin vermelidir. Aksi takdirde, cihaz D3cold durumuna girdikten sonra bilgisayar S0 durumundan ayrılana kadar kullanılamayabilir.
Varsayılan olarak, SetD3ColdSupport yordamına yapılan ilk çağrıdan önce D3hot-D3cold geçişleri devre dışı bırakılır. D3hot-D3cold geçişlerinin ilk SetD3ColdSupport çağrısından önce etkinleştirilmesi için bu varsayılan ayarı değiştirmek için, cihazın sürücü paketi, sürücüyü yükleyen INF dosyasının DDInstall.HW bölümüne aşağıdaki iki satırı içerebilir:
Include = machine.inf
Needs = PciD3ColdSupported
GetIdleWakeInfo yordamı, bir cihazın sürücüsünün, bilgisayar belirli bir sistem güç durumundayken cihazın uyandırma olayına sinyal gönderebileceği cihaz güç durumlarını bulmasını sağlar. Bu yordamı çağıran, giriş parametresi olarak bir sistem güç durumunu belirtir ve çıkış parametresi olarak yordam, bilgisayar belirtilen sistem güç durumundayken cihazın bekleme olayı sinyalini gönderebileceği en düşük güçteki cihaz güç durumunu bildirir. Örneğin, GetIdleWakeInfo yordamı, bilgisayar S0'dayken cihazın D3cold'dan bir uyandırma olayı sinyali verip veremeyeceğini sürücüye söyleyebilir.
GetIdleWakeInfo yordamı, IRP_MN_QUERY_CAPABILITIES isteğinde sağlanandan daha eksiksiz cihaz uyandırma bilgileri sağlar. Tüm Windows sürümlerinin desteklediği bu istek, bir cihazın özelliklerini açıklayan bir DEVICE_CAPABILITIES yapısı sağlar. Bu yapının DeviceWake üyesi, GetIdleWakeInfo yordamından sağlanan bilgilerin bir alt kümesini içerir. Bu üye, bir cihazın bekleme olayına sinyal gönderebileceği en düşük güç durumunu gösterir. Bu üyedeki bilgilerin doğru olması için, bilgisayarın sistemin SystemWake üyesi tarafından belirtilen düşük güç durumunda olması garanti edilir. SystemWake = PowerSystemSleeping3ise, DeviceWake'daki bilgilerin S3 için geçerli olduğu bilinmektedir, genellikle S1 ve S2 için geçerli olabilir ve hatta S0 için de geçerli olabilir.
Ancak, en iyi uygulama olarak, bir sürücü DeviceWake yöntemindeki bilgilerin SystemWaketarafından belirtilen durum dışında herhangi bir sistem güç durumu için geçerli olduğunu varsaymamalıdır. Bazı cihazlarda, bir cihazın uyandırma olayı sinyali gönderebileceği en düşük Dx durumu, bilgisayarın çalışma durumunda S0 veya düşük güç durumunda (S1, S2, S3 veya S4) olmasına göre değişir. Diğer cihazlar için, cihazların bağlı olduğu otobüsler, bilgisayar S0'dayken uyandırma sinyallerini işleyebilir, ancak cihazlar bunu yapamaz. Yalnızca GetIdleWakeInfo yordamı bu cihazların cihaz uyandırma özelliklerini doğru şekilde açıklayabilir.
Örneğin, PCI Express Base 3.0 Belirtimi uyandırma olaylarına sinyal vermek için iki ayrı mekanizma tanımlar; bir mekanizma PCI Express bağlantısı (veri yolu) açıkken kullanılır ve diğeri bağlantı kapatıldığında kullanılır. Bağlantı açıldığında cihaz, cihazın düşük güçte Dx durumundan D0'ye geçmesi gerektiğini belirten bir PM_PME İşlem Katmanı Paketi (TLP) akışı gönderir. Bağlantı kapatıldığında, cihaz PM_PME TLP gönderebilmesi için bağlantının açılmasını istemektedir. Bağlantının açılmasını istemek için cihaz WAKE# sinyalini (daha yaygın cihaz form faktörü için) onaylar veya "işaret" mekanizmasını (daha az yaygın) kullanır.
PCI Express belirtimi, D3cold'dan güç yönetimi olaylarına (PME) sinyal gönderme özelliğini tanıtan tüm cihazların bu cihaz uyandırma mekanizmalarının ikisini de uygulamasını gerektirir, ancak sürücü geliştiricisinin bu mekanizmaları doğru şekilde uygulamayan bir cihazı etkinleştirmesi gerekebilir.
Bağlantı açıkken cihaz PM_PME TLP'leri doğru şekilde teslim edebilirse, sürücü bilgisayar S0'dayken cihazın D3hot girmesini etkinleştirebilir. Cihaz bağlantıyı açmak için WAKE# sinyalini doğru onaylayabilir ve ardından D0'ye geçişi başlatmak için PM_PME TLP'leri kullanabilirse, sürücü bilgisayar S0'dayken cihazın D3cold girmesini sağlayabilir.
Ancak, sistem üretici yazılımı (BIOS) PCI Express cihaz uyandırma mekanizmalarının donanım platformu tarafından doğru şekilde işlendiğini garanti etmediyse sürücü cihazın D3hot veya D3cold girmesini etkinleştirmemelidir. Bir sürücü, üretici yazılımının bu mekanizmalar için destek talep edip etmediğini bulmak için GetIdleWakeInfo yordamını çağırabilir. Sürücü Kernel-Mode Driver Framework (KMDF) 1.11 veya daha yüksek bir sürümü kullanıyorsa, GetIdleWakeInfo çağrısına kullanışlı bir alternatif olarak, WdfDeviceAssignS0IdleSettings yöntemi, cihazın uyandırma olayı sinyali verebileceği en düşük güçteki Dx durumunda boşta kalmasını sağlamaktır.