WFU

[ 精選文章 ]

自行車 入門 Escape 3 , Snap 21 , Revel

最近周末想運動 , 平日想通勤 , 想買台自行車 , 把自己找的資料跟大家分享 , 如果你是玩家級的 就不用看了 這是給跟我一樣的新新新手 參考的 騎車半年後的補充: 如果你有把握你是真的有時間有興趣會一直騎,建議還是存點錢買好一點的彎把公路車, 或是可以考慮買2手的自...

2015年6月8日 星期一

ACPI 隱藏 USB 裝置 , Win 10 WebCam 鏡像顯示 ( Webcam Mirror )

Win10 Webcam 若為前鏡頭 須為 鏡像顯示 (跟照鏡子一樣)

(1)   CameraPosition要設為Front,而不是Back
Front代表Camera放在螢幕的前方(前置鏡頭)Back為放在螢幕的後面(後置鏡頭)
所以要Mirror的話需設為Front,如下ACPI Spec描述:

6.1.8 _PLD(Physical Location of Device) 欄位描述 bit 67~69:


也就是Code的位置:


若設為0x600110 0000 =>所以為Front (成像Mirror)
若設為0x680110 1000 =>所以為Back (不會Mirror)


(2)   Code的架構上需新增宣告一個WCam Device且需掛在USB port(PRT3)底下才會有效,而不能讓Device(WCam)Device(PRT3)平行

例如以下有效的描述:

Scope(\_SB.PCI0.EHC1)
{
    Device (RHUB)
    {
       ……
        Device (PRT3)   //EHCI1 Port3
                        {      
……
                                Device(Wcam)
              {
                  …… <=把上面的重點1修改在這邊
              }
                        }
        }
}

        例如以下無效的描述:

Scope(\_SB.PCI0.EHC1)
{
    Device (RHUB)
    {
       ……
        Device (PRT3)   //EHCI1 Port3
                        {      
……
                        }

Device(Wcam)
           {
               …… <=即使把重點1修改在這邊也不會有效,需將Wcam掛在PRT3底下,而不能與之平行
           }

        }
}

(3)   另外根據實驗,宣告_PLD欄位方式可以有下列2種,擇一宣告即可
(方式1)
Name(_PLD, Buffer(0x10) {
        …….
        })
       
(方式2)
        Method(_PLD,0,Serialized)
        {
       Name(PLDP, Package(){
           Buffer (0x10) {
           ……
           }
       })
      
       Return (PLDP)
    }

        另外Buffer大小,宣告Buffer(0x10)Buffer(0x14)都可以,不會影響


(1)   隱藏USB device: (1)USB Camera (2) USB Bluetooth
如下圖已隱藏:
Win10 -> Control Panel -> Hardware and Sound -> Devices and printers



EX,要把USB Optical Mouse在這裡hidden,則要滿足下面ACPI 2個條件


(1)   ACPI spec _UPC->connectable要設0

 (2)   ACPI spec _PLD->User Visible設為0



    Device (RHUB)
    {
       ……
        Device (PRT3)   //EHCI1 Port3
                        {      
Name(_UPC,Package(){
0x01,
0xFF,
0x00,
0x00})

               Name(PLDP, Package(){
                  Buffer (0x10) {
                  0x81,0x00,0x00,0x00,
                  0x00,0x00,0x00,0x00,
                  0x69,
                  .....
                  }                  
           }
        }
只要把紅色部分 0x01改成0x000x69改成0x68即可hidden

詳細資料請參閱 ACPI SPEC

沒有留言:

張貼留言