新四季網

一種計算機視頻設備保護方法和裝置的製作方法

2023-12-01 09:16:51 4

專利名稱:一種計算機視頻設備保護方法和裝置的製作方法
技術領域:
本申請涉及計算機技術領域,特別是涉及一種計算機視頻設備保護方法和裝置。
背景技術:
隨著網際網路技術的發展,在網際網路中用戶可以通過視頻設備(比如攝像頭)與其 他用戶進行視頻交互,並且在網際網路中,許多應用程式都可打開視頻設備,獲取用戶端的視頻信息。在使用過程中,如果一用戶不注意對視頻設備的管理,網際網路中其他用戶很可能得到到該用戶不願意公開的視頻信息,尤其對於黑客來說,很容易就通過遠程操作控制視頻設備獲取用戶端的視頻信息。現有技術中,對於視頻隱私的保護技術是使用windows內核HOOK技術攔截打開攝像頭的進程,即當有進程打開用戶端視頻設備時,通過內核API的HOOK函數CreateFile函數和DeviceIoControl函數阻斷當前進程發送給用戶端視頻設備的請求消息,即鉤取,並彈出提示框等待用戶進行處理。在這個過程中,一旦拒絕HOOK的CreateFile和DeviceIoControl函數,即用戶長時間不對彈出提示框進行處理或者選擇阻斷,所述進程無法再次打開視頻設備,因為暴力的阻斷了應用進程和視頻設備之間的通訊,破壞了應用進程與視頻設備之間正常交互的協議,導致該應用進程認為視頻設備損壞而無法再次訪問視頻設備,必須重啟該進程方可再次與視頻設備通訊。

發明內容
本申請所要解決的技術問題是提供一種計算機視頻設備保護方法和裝置,使在保護用戶視頻信息不會產生進程認為視頻設備損壞而無法再次訪問的情況。為了解決上述問題,本申請公開了一種計算機視頻設備保護裝置,包括視頻流過濾驅動和監控模塊;所述視頻流過濾驅動包括控制模塊和物理驅動對象模塊;所述物理驅動對象模塊用於當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊;將所述視頻流數據替換為所述替換數據;所述控制模塊用於將所述視頻流參數信息和應用進程標識信息發送給監控模塊;所述監控模塊用於接收所述控制模塊發送的應用進程標識信息和視頻流參數信息;依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊;依據所述應用進程標識信息提示用戶端是否允許所述應用進程使用視頻設備;
當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。優選的,在所述物理驅動對象模塊中,當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當讀取到視頻流數據後,將應用進程對應的應用進程標識信息發送至監控模塊時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;
當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送至監控模塊。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送至監控模塊;或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > I,將所述視頻流數據對應的應用進程標識信息發送至監控模塊,並將第N幀之前的每幀視頻流數據中每一字節處理為與所述視頻流數據不同的數據;或,當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊;或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊。優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據;和/或,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據。優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊;所述與視頻流參數信息對應的替換數據為與視頻設備輸出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。
優選的,所述監控模塊還用於發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據;和/或,發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流 數據替換為替換數據;和/或,發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。優選的,所述的控制模塊包括監控過濾器;所述監控過濾器由所述監控模塊在控制模塊中創建,所述應用進程標識信息和視頻流參數信息通過所述監控過濾器將發送給監控模塊。優選的,在所述物理驅動對象模塊中,依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據;和/或,當監控模塊接收到所述視頻流數據對應的應用進程標識信息時,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時包括所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視頻流
參數信息。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據時包括所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中的I0CTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流;若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。優選的,根據系統註冊表加載所述視頻流過濾驅動,並在所述視頻流過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。相應的,本申請還公開了一種計算機視頻設備保護方法,包括獲取視頻設備對應的視頻流參數信息;當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊;所述監控模塊依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊;所述物理驅動對象模塊依據所述替換數據將所述視頻流數據替換為所述替換數據;所述監控模塊依據所述應用進程標識信息提示用戶端是否允許所述應用進程讀取視頻流數據;當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。優選的,獲取視頻設備對應的視頻流參數信息,和當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送至監控模塊。優選的,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送給監控模塊;或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > I,將所述視頻流數據對應的應用進程標識信息發送給監控模塊,並將第N幀之前的每幀視頻流數據中每一字節處理為與所述視頻流數據不同的數據。優選的,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊;或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊;或,當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。優選的,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;和/或,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊。優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊;所述與視頻流參數信息對應的替換數據為與視頻設備輸出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。優選的,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。優選的,還包括通過所述監控模塊發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據;和/或,通過所述監控模塊發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為替換數據;和/或,通過所述監控模塊發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。優選的,所述應用進程標識信息和視頻流參數信息通過監控過濾器發送給監控模塊;所述監控過濾器由所述監控模塊在控制模塊中創建。
優選的,依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據;和/或,當監控模塊接收到所述視頻流數據對應的應用進程標識信息時,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。優選的,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時包括所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視頻流
參數信息。優選的,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據時包括所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中的I0CTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流;若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。優選的,還包括根據系統註冊表加載過濾驅動,並在所述過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。與現有技術相比,本申請包括以下優點本申請在過濾驅動中創建控制模塊和針對實際視頻設備的物理驅動對象模塊,所述控制模塊接收監控模塊發送的替換數據,並轉發監控模塊發送給物理驅動對象模塊的替換數據;本申請利用上述物理驅動對象模塊將視頻設備的視頻流替換為與視頻流數據類型相同的替換數據返回給應用進程,在本申請的處理過程中,對於應用進程的任何一個請求消息包,均沒有強行的進行阻斷,對於帶有視頻流數據的請求包,只是將請求包中的視頻數據替換為與視頻相同格式的替換數據,既沒強行的暴力的阻斷應用進程和視頻設備之間的通訊,也不會破壞應用進程與視頻設備之間正常交互的協議,不會導致該應用進程認為視頻設備損壞而無法再次訪問視頻設備,該應用進程不用重啟即可重新訪問所述視頻設備;另外,在本申請中,是在獲取到視頻設備的視頻流數據後再提示用戶端選擇是否允許進行阻斷,不會造成誤報的情況。


圖I是本申請一種計算機視頻設備保護裝置的結構示意圖2是本申請一種計算機視頻設備保護方法的流程示意圖。
具體實施例方式為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明。為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本申請作進一步詳細的說明。在windows系統中,如果設置了過濾驅動,則所有訪問實際設備的消息和實際設備返回的消息都需要經過過濾驅動。本申請在windows過濾驅動的機制下添加了一層視頻流過濾驅動,那麼即可在過視頻流濾過驅動中對與視頻設備交互的消息進行處理,不必阻斷應用進程的消息循環,而不必直接通過HOOK函數直接阻斷進程的消息循環,從而破壞應用進程與視頻設備之間正常的通訊協議,避免了阻斷後應用程式無法再次打開的情況,使應用進程可以多次進行正常訪問視頻設備。參照圖1,其示出了本申請一種計算機視頻設備保護裝置的結構示意圖,包括視頻流過濾驅動110和監控模塊120 ;所述視頻流過濾驅動包括控制模塊111和物理驅動對象模塊112 ;所述物理驅動對象模塊112用於當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊;依據所述替換數據,將所述視頻流數據替換為所述替換數據;所述控制模塊111用於將所述視頻流參數信息和應用進程標識信息發送給監控模塊;所述監控模塊120用於接收所述控制模塊發送的應用進程標識信息和視頻流參數信息;依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊;依據所述應用進程標識信息提示用戶端是否允許所述應用進程使用視頻設備;當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。在本申請中,系統首先會加載視頻流過濾驅動,即根據系統註冊表加載所述視頻流過濾驅動,並在所述視頻流過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。實際中,需要將加載針對視頻設備(比如攝像頭設備)的視頻流過濾驅動(Imaging devices),並在所述過濾驅動中創建控制模塊和針對視頻設備的設備對象。一般情況下,所述過濾驅動的加載是在系統啟動時進行加載的,即根據系統註冊表進行加載,本申請的過濾驅動加載時在系統註冊表中的位置包括 「HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{6BDDlFC6-810F-11D0-BEC7-08002BE2092F}\UpperFiIters」
創建啟動服務項,將該驅動服務隨機啟動(其中,「CamFilter」為啟動服務項名稱,可根據實際情況進行修改)啟動服務項註冊表路徑[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CamFilter]" Type" = dword :00000001" Start" = dword :00000001在加載過濾驅動後,在過濾驅動中會針對每個實際的視頻設備創建相應的物理驅動對象模塊,還會創建一個控制模塊用於接收監控模塊的指令與數據。另外,在監控模塊啟動時,會打開視頻流過濾驅動中的控制模塊,同時在控制模塊 中註冊一個監控過濾器,即所述的控制模塊包括監控過濾器;所述監控過濾器由所述監控模塊在控制模塊中創建,所述應用進程標識信息和視頻流參數信息通過所述監控過濾器發送給監控模塊。在監控模塊啟動後,監控模塊首先會通過MJ_CREATE函數發送一個IPR_MJ_CREATE請求包到過濾驅動,過濾驅動接收到該請求包後首先會判斷該請求包中的設備對象的句柄是否為預置的控制模塊的句柄,所述控制模塊的句柄為所述控制模塊的名稱;如果是,則發送到控制模塊打開控制模塊,即打開預置的設備對象句柄,並創建一個空屬性的過濾器;然後監控模塊再發送一條控制指令將該空屬性的過濾器註冊為監控過濾器,實際中,本申請所述的註冊是監控模塊發送監控的IRP (I/O request packet)請求並被控制模塊掛起,等待物理驅動對象模塊發送的相關信息,比如視頻流參數信息和需要使用視頻設備的應用進程標識信息等。其中,在所述物理驅動對象模塊中,當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當讀取到視頻流數據後,將應用進程對應的應用進程標識信息發送至監控模塊時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;在獲取到視頻流參數信息後,具體將所述視頻流參數信息發送至監控模塊的時機可根據情況選擇。比如,在獲取到視頻流參數信息後,立即將所述視頻流參數信息發送至監控模塊的時機可根據情況選擇;或者在獲取到視頻流參數信息後,先將其存儲於過來驅動對象模塊,然後當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,與視頻流數據對應的應用進程標識信息一起發送至監控模塊。當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送至監控模塊。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時一般可包括(I),當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。或,(2)當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > 1,將所述視頻流數據對應的應用進程標識信息發送給監控模塊,並將第N幀之前的每幀視頻流數據中的每一字節處理為與所述視頻流數據不同的數據。實際中,對於第N幀之前的每幀視頻流數據,也可將每幀視頻流數據中的部分字節處理為與所述視頻流數據不同的數據。對於具體處理方式,本申請不對其加以限制,保證應用進程收到所述視頻流數據時,無法顯示視頻設備真實圖像即可。或,(3)當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。 比如,當視頻設備發送的視頻流到第10幀時,應用進程讀取到第10幀時再將應用進程標識信息發送至監控模塊。一般情況下,是通過控制模塊中的監控過濾器發送至監控模塊。其中,所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中的I0CTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流;若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。實際中,物理驅動對象模塊接收到監控模塊發送的替換數據之前,可能無法及時將應用進程當前讀取的視頻流數據替換為替換數據,即在監控模塊接收到視頻流參數信息,再將預置的第一源替換數據處理為替換數據發送到物理驅動對象模塊的第二時間點,與物理驅動對象模塊需要進行替換的第一時間點之間存在延時,因為所述第一時間點一般比所述第二時間點要早,其中,更進一步的說第一時間點為物理驅動對象模塊讀取到第一幀或者第N幀視頻流數據時的時間點,第二時間點為物理驅動模塊收到所述替換數據的時間點。那麼此時,物理驅動對象模塊可將替換數據位到達物理驅動對象模塊時,將應用進程讀取的視頻流數據處理為與所述視頻流數據不同的數據,再返回給應用進程。比如,將應用進程讀取的視頻流數據處理為0,處理為I等情況。優選的,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時可包括(I)當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊。或,(2)當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊。一般情況下,應用進程首先會進行視頻設備的打開動作,進行一個Connect操作綁定時獲取視頻設備的視頻流參數信息。所述的視頻流參數信息包括視頻流的壓縮格式、視頻的高寬、視頻每一幀圖片的size (尺寸),每一個像素所佔的字節數等。對於每種應用進程,其獲取的視頻流參數信息可能存在不同,比如應用進程A獲取的視頻的高寬為360*480,而應用進程B獲取的視頻的高寬為600*800 ;還比應用進程獲取的格式信息不同,比如格式YUY2格式、MJPG格式、RGB32格式、1420格式等。因此,相應不同應用進程可能其獲取的視頻流參數信息不同。那麼,此時,物理驅動對象模塊可在獲取到視頻流參數信息時即將其發送監控模塊中的監控過濾器,再由監控過濾器發送至監控模塊。或者將其首先攔截在物理驅動對象模塊中,當應用進程讀取到視頻流數據時,在與應用進程信息一起發送至監控過濾器,再由監控過濾器發送至監控模塊。此時,前述當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時,可將所述視頻流數據對應的視頻流參數信息和應用進程標識信息發送給監控模塊。其中,所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視
頻流參數信息。其中,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊。所述與視頻流參數信息對應的替換數據為與視頻設備輸 出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。因為不同的應用程式讀取的視頻流參數信息可能不同,那麼即需要監控模塊依據視頻流參數信息,將預置的第一源替換數據轉換為與視頻設備輸出的數據類型相同的替換數據,然後再將替換數據通過監控模塊(一般是通過監控模塊中的監控過濾器)發送至所述物理驅動對象模塊。優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。用戶可自定義選擇圖片等格式數據作為第一源替換數據,即用戶可根據自己需求選擇圖片作為默認底圖,在物理驅動模塊進行替換時,顯示給用戶端的即為該默認底圖。即將應用進程讀取的視頻流數據替換為由所述底圖作為的攝像頭防窺貼,以所述地圖作為攝像頭的軟蓋子,保護視頻隱私不被窺探。在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據;和/或,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據。優選的,所述監控模塊還用於發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據;和/或,發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為替換數據;和/或,發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。即監控模塊通過特效模塊可以實現對當前視頻流的隨時阻斷和暫停等操作。特效模塊為監控模塊的一部分,其可以向驅動註冊過濾器來實現對驅動發送相關的指令。以實現對視頻流的暫停功能,即當驅動接受到暫停指令時,將當前幀進行保存,並將該數據替換掉之後的所有視頻流幀數據,以視頻暫停的功能。阻斷功能即將每ー幀的數據替換為我們發給物理驅動對象模塊的替換數據。恢復功能,即當發送恢復指令吋,停止以上數據替換,或者停止暫停功能。
優選的,在所述物理驅動對象模塊中,依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據;和/或,當監控模塊接收到所述視頻流數據對應的應用進程標識信息時,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。優選的,所述物理驅動對象模塊還用於當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。參照圖2,示出了本申請ー種計算機視頻設備保護方法的流程示意圖,包括步驟210,獲取視頻設備對應的視頻流參數信息。實際中,本步驟包括當應用進程視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送給監控模塊。在實際中,還包括步驟180,根據系統註冊表加載過濾驅動,並在所述過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。實際中,需要將加載針對視頻設備(比如攝像頭設備)的過濾驅動(Imagingdevices)。一般情況下,所述過濾驅動的加載是在系統啟動時進行加載的,即根據系統註冊表進行加載,本申請的過濾驅動加載時在系統註冊表中的位置包括「HKEY_L0CAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{6BDDlFC6-810F-11D0-BEC7-08002BE2092F}\UpperFiIters」創建啟動服務項,將該驅動服務隨機啟動(其中,「 CamFilter」為啟動服務項名稱,可根據實際情況進行修改)啟動服務項註冊表路徑[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CamFilter](其中「CamFilter」為啟動服務項名稱,可根據實際情況進行修改)" Type" = dword :00000001" Start" = dword :00000001在加載過濾驅動後,在過濾驅動中會針對每個實際的視頻設備創建相應的物理驅動對象模塊,還會創建ー個控制模塊用於接收監控模塊控制物理驅動對象模塊的指令與數據。另外在實際中,在步驟210之前還包括步驟190,啟動監控模塊。
步驟200,通過監控模塊發送打開命令到視頻流過濾驅動打開所述控制模塊,並在所述控制模塊中創建監控過濾器。即監控模塊通過MJ_CREATE函數發送IPR包到視頻流過濾驅動後,視頻流過濾驅動會首先根據該IPR包中指令和對應控制模塊的句柄打開控制模塊,同時控制模塊會創建ー個空屬性的過濾器;然後監控模塊再發送ー個創建監控過濾器的指令將該空屬性的過濾器創建為監控過濾器。在啟動監控模塊後,監控模塊通過發送指令和數據到所述控制模塊中來進行操控。一般情況下,監控模塊是通過發送控制指令到控制模塊進程操控。在監控模塊啟動後,監控模塊首先會通過MJ_CREATE函數發送ー個IPR_MJ_CREATE請求包到過濾驅動,過濾驅動接收到該請求包後首先會判斷該請求包中的設備對象的句柄是否為預置的控制模塊的句柄,如果是則發送到控制模塊打開控制模塊,即打開預置的設備對象句柄,並創建ー個空屬性的過濾器;然後監控模塊再發送一條控制指令將該空屬性的過濾器註冊為監控過濾器。實際中,本申請所述的註冊是監控模塊發送監控的IRP(I/0request packet)請求並被控制模塊掛起,等待物理驅動對象模塊發送的相關信息,比如視頻流參數信息和需要使用視頻設備的應用進程標識信息等。當應用進程視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送給監控模塊。其中,所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視
頻流參數信息。其中,所述的視頻流參數信息包括視頻流的壓縮格式、視頻的高寬、視頻每ー幀圖片的size (尺寸),每ー個像素所佔的字節數等。對於每種應用進程,其獲取的視頻流參數信息可能存在不同,比如應用進程A獲取的視頻的高寬為360*480,而應用進程B獲取的視頻的高寬為600*800,還比應用進程獲取的格式信息不同,比如格式YUY2格式、MJPG格式、RGB32格式、1420格式等。因此,相應不同應用進程可能其獲取的視頻流參數信息不同。優選的,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時包括步驟S211,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊。即在應用進程在通過IPR_MJ_CREATE函數打開視頻設備,比如攝像頭設備時,會在IPR_MJ_CREATE函數中獲取進程訪問攝像頭設備的視頻流參數信息,該信息包括3個GUID 項,分別為 majortype、subtype、formattype,還包括一個 VIDE0INF0HEADER 結構。實際中,在應用進程在通過IPR_MJ_CREATE函數打開視頻設備,進行ー個Connect操作綁定時獲取到的,其代碼可如下hr = m_pGraph- > Connect (m_pCameraOutput, m_pGrabberInput) -J/ 應用程式此時獲取視頻流息的hr = m_pGraph- > Connect (,m_pGrabber0utput, m_pNul I InputPin)。那麼當應用進程在通過IPR_MJ_CREATE打開視頻設備獲取到視頻流參數信息吋, 即可將所述視頻流參數信息發送至監控模塊。在實際中,物理驅動對象模塊獲取到視頻流參數信息吋,首先將視頻流參數信息發送至控制模塊,再由控制模塊發送至監控模塊。
在本步驟中,在獲取到視頻流參數信息後,具體將所述視頻流參數信息發送至監控模塊的時機可根據情況選擇。比如,在獲取到視頻流參數信息後,立即將所述視頻流參數信息發送至監控模塊的時機可根據情況選擇;或者在獲取到視頻流參數信息後,先將其存儲於過來驅動對象模塊,然後當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,與視頻流數據對應的應用進程標識信息一起發送至監控模塊。或,步驟S212,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊。
本步驟中,當應用進程通過IPR_MJ_CREATE函數中的上述消息獲取到視頻流參數信息後,將其保留在物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,再將所述視頻流參數信息發送至監控模塊。步驟220,當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊。實際中,本步驟包括當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。其中,所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中的I0CTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流。若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時包括步驟S221,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中,的I0CTL_KS_READ_STREAM消息進行監控,當有進程讀取物理設備的第一幀數據時,獲取當前進程的ID及其完整路徑,若監控程序已註冊監控驅動,則激活為主動攔截模式。或,步驟S221,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > 1,將所述視頻流數據對應的應用進程標識信息發送給監控模塊,並將第N幀之前的每幀視頻流數據中的每一字節處理為與所述視頻流數據不同的數據。實際中,對於第N幀之前的每幀視頻流數據,也可將每幀視頻流數據中的部分字節處理為與所述視頻流數據不同的數據。對於具體處理方式,本申請不對其加以限制,保證應用進程收到所述視頻流數據時,無法顯示視頻設備真實圖像即可。或,步驟S223,當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。所述物理驅動對象模塊通過對IPR_MJ_DEVICE_C0NTR0L函數中,的I0CTL_KS_READ_STREAM消息進行監控,當有進程讀取物理設備的第N幀數據吋,獲取當前進程的ID及其完整路徑,若監控程序已註冊監控驅動,則激活為主動攔截模式。對於第N幀數據之前的數據,則將其處理為與所述視頻流數據不同的數據返回給應用進程。比如,將應用進程讀取的視頻流數據處理為0,處理為I等情況。
其中,當前述步驟S212執行時,在本步驟中,則在將所述視頻流數據對應的應用進程標識信息和視頻流參數信息發送給監控模塊。即在應用進程通過IPR_MJ_CREATE函數獲取視頻流時可設置ー個開關,當獲取到視頻流參數信息時,打開該開關保存接收到的信息,比如視頻流參數信息。當獲取到進程獲取第一幀視頻流數據或者第N幀視頻流數據時,開關將關閉,不再保存其接受到的信息。當該應用進程打開的監控模塊的FileOjbect關閉時,再次開啟該開關。實際中,物理驅動對象模塊接收到監控模塊發送的替換數據之前,可能無法及時將應用進程當前讀取的視頻流數據替換為替換數據,即在監控模塊接收到視頻流參數信息,再將預置的第一源替換數據處理為替換數據發送到物理驅動對象模塊的第二時間點,與物理驅動對象模塊需要進行替換的第一時間點之間存在延時,因為第一時間點一般比第ニ時間點要早。那麼此時,物理驅動對象模塊可將替換數據位到達物理驅動對象模塊時,應用進程讀取的視頻流數據處理為與所述視頻流數據不同的數據,再返回給應用進程。比如,將應用進程讀取的視頻流數據處理為0,處理為I等情況。步驟230,所述監控模塊依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊。其中,本步驟首先會將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊。所述與視頻流參數信息對應的替換數據為與視頻設備輸出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。因為不同的應用程式讀取的視頻流參數信息可能不同,那麼即需要監控模塊依據視頻流參數信息,將預置的第一源替換數據轉換為與視頻設備輸出的數據類型相同的替換數據,然後再將替換數據通過監控模塊(一般是通過監控模塊中的監控過濾器)發送至所述物理驅動對象模塊。 優選的,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。即用戶可自定義選擇圖片等格式數據作為第一源替換數據。優選的,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括步驟S231,在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊。本步驟中,即當監控模塊接收到視頻流參數信息吋,即將替換數據通過控制模塊發送至所述物理驅動對象模塊,存儲在物理驅動對象模塊中的配置文件中。和/或,步驟S232,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊。因為所述如前所述,視頻流參數信息發送給監控模塊的時機,要麼比應用進程發送給監控模塊的時機早,要麼同時發送。那麼如果監控模塊接收視頻流參數信息的時機早於應用進程的時機時,可先存放於監控模塊,等待接收到應用進程的標識信息時,再將替換數據通過控制模塊發送至所述物理驅動對象模塊。另外,如果當前應用進程只是打開了視頻設備,而未讀取視頻流數據就退出時,可通知監控模塊把當前存儲的視頻流參數信息刪除,避免影響後續進程的使用。在上述步驟中,所述應用進程標識信息和視頻流參數信息通過監控過濾器發送給監控模塊;所述監控過濾器由所述監控模塊在控制模塊中創建。步驟240,所述物理驅動對象模塊依據所述替換數據將所述視頻流數據替換為所述替換數據。當應用進程讀取視頻流後,比如讀取第一幀視頻流,或者第N幀視頻流吋,可通過IOCTL_KS_READ_STREAM中設置的回調函數ReadStream_Rountine,將應用進程讀取的視頻流數據替換為替換數據。依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括步驟S241,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據。當監控模塊運行後,會設置物理驅動模塊為主動監控模式,當有進程打開攝像頭設備吋,驅動在沒有收到監控模塊的攔截指令前將主動攔截,則將原視頻流數據修改,如將視頻流數據替換為替換數據,或者如將視頻流清零,其代碼示例如下
case CONTROL—ACTIVATEMONITOR:
{
try
{
if( userien == 0 )
goto UNSUCCESSFUL—RETN;
ProbeForRead( userbuf ,userien , TYPE ALIGNMENT(UCHAR));activate = *(UINT32 *)userbuf;
S etActivateAllMonitor(activate);
}
except( EXCEPTION—EXECUTE—HANDLER)
{
status = GetExceptionCodeQ;
}
}在ReadStream_Rountine的回調函數中,由於主動監控模式的存在,該進程在未 獲取用戶的選擇放行前,將無法讀取到每ー幀的數據,其代碼示例如下if( (pctx->monitormode 11 pctx->bsetlogo && pctx->bBlockStream ))
{
try
{
sysbuf = GetUBuf( pirp ); syssize = GetUSize( pirp );
if( sysbuf && pctx->nlogousize && ( syssize >=pctx->nlogousize) && pctx->plogobuf)
{
memcpy(sysbuf ,pctx->plogobuf, pctx->nlogousize );
}
else if( sysbuf != NULL)
{
memset(sysbuf, O,syssize);
}
}
except( EXCEPTION—EXECUTE—HANDLER)
{
status = GetExceptionCodeQ;
}
}和/或,步驟S241,當監控模塊接收到所述視頻流數據對應的應用進程標識信息吋,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。所述物理驅動模塊也可根據監控模塊實時發送的替換指令調整為替換模式。 步驟250,所述監控模塊依據所述應用進程標識信息提示用戶端是否允許所述應用進程讀取視頻流數據;當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。當不允許所述應用進程使用視頻設備時,所述物理驅動對象模塊維持當前替換模式。另外,本申請還包括通過所述監控模塊發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據;和/或,通過所述監控模塊發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為替換數據;和/或,通過所述監控模塊發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。即監控模塊通過特效模塊可以實現對當前視頻流的隨時阻斷和暫停等操作。特效模塊為監控模塊的一部分,其可以向驅動註冊過濾器來實現對驅動發送相關的指令。比如實現對視頻流的暫停功能,即當物理驅動對象模塊接受到暫停指令時,將當前幀進行保存,並將該數據替換掉之後的所有視頻流幀數據,以視頻暫停的功能。比如實現對視頻流的阻斷功能,即將每一幀的視頻流數據替換為監控模塊發給驅動的替換數據。比如實現隨時恢復功能,即當發送恢復指令時,停止所述數據替換或者停止暫停動作。另外,在監控模塊獲取到視頻參數信息和應用進程標識信息後,還可根據允許應用進程讀取視頻流數據的白名單,將應用進程標識信息與所述白名單中的應用進程標識信息進行匹配,如果匹配上,則允許所述應用進程使用所述視頻設備,如果未匹配上,則可將預置的源替換數據轉換為與視頻設備輸出的數據類型相同的替換數據並將所述轉換後的替換數據和替換指令通過控制模塊發送至物理驅動對象模塊,當有應用進程通過物理驅動對象模塊讀取視頻流,所述物理驅動對象模塊將視頻設備發送的視頻流的每幀視頻數據替換為所述替換數據,並將所述替換數據發送給應用進程。另外,也可結合不允許使用視頻設備的黑名單,將應用進程標識信息與黑名單進行匹配,如果匹配上,則直接選擇不允許相應應用進程使用視頻設備,將視頻流替換為相應替換數據。或者,將應用進程標識信息同時與白名單、黑名單進行匹配,如果都沒匹配上,則提示用戶選擇是否允許當前應用進程使用視頻設備。對於系統實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本申請可用於眾多通用或專用的計算系統環境或配置中。例如個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、置頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。以上對本申請所提供的一種計算機視頻設備保護方法和裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式
及應用範圍上均會有改變之處,綜上 所述,本說明書內容不應理解為對本申請的限制。
權利要求
1.一種計算機視頻設備保護裝置,包括視頻流過濾驅動和監控模塊;其特徵在於,包括 所述視頻流過濾驅動包括控制模塊和物理驅動對象模塊; 所述物理驅動對象模塊用於 當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊; 當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊; 將所述視頻流數據替換為所述替換數據; 所述控制模塊用於 將所述視頻流參數信息和應用進程標識信息發送給監控模塊; 所述監控模塊用於 接收所述控制模塊發送的應用進程標識信息和視頻流參數信息; 依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊; 依據所述應用進程標識信息提示用戶端是否允許所述應用進程使用視頻設備; 當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。
2.根據權利要求I所述的裝置,其特徵在於,在所述物理驅動對象模塊中,當獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊;當讀取到視頻流數據後,將應用進程對應的應用進程標識信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊; 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送至監控模塊。
3.根據權利要求I所述的裝置,其特徵在於,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送至監控模塊; 或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > 1,將所述視頻流數據對應的應用進程標識信息發送至監控模塊,並將第N幀之前的每幀視頻流數據中的每一字節處理為與所述視頻流數據不同的數據; 或,當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。
4.根據權利要求I或3所述的裝置,其特徵在於,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊; 或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊。
5.根據權利要求4所述的裝置,其特徵在於,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據; 和/或,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊;所述替換數據為與視頻流參數信息對應的替換數據。
6.根據權利要求I所述的裝置,其特徵在於,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊;所述與視頻流參數信息對應的替換數據為與視頻設備輸出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。
7.根據權利要求6所述的裝置,其特徵在於,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。
8.根據權利要求I所述的裝置,其特徵在於,所述監控模塊還用於 發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據; 和/或,發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為替換數據; 和/或,發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。
9.根據權利要求I所述的裝置,其特徵在於 所述的控制模塊包括監控過濾器;所述監控過濾器由所述監控模塊在控制模塊中創建,所述應用進程標識信息和視頻流參數信息通過所述監控過濾器將發送給監控模塊。
10.根據權利要求I所述的裝置,其特徵在於,在所述物理驅動對象模塊中,依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據; 和/或,當監控模塊接收到所述視頻流數據對應的應用進程標識信息時,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。
11.根據權利要求I所述的裝置,其特徵在於,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時包括 所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視頻流參數信息。
12.根據權利要求I所述的裝置,其特徵在於,在所述物理驅動對象模塊中,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據時包括 所述物理驅動對象模塊通過對IPR_MJ_DEVICE_CONTROL函數中的IOCTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流; 若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。
13.根據權利要求I所述的裝置,其特徵在於 根據系統註冊表加載所述視頻流過濾驅動,並在所述視頻流過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。
14.一種計算機視頻設備保護方法,其特徵在於,包括 獲取視頻設備對應的視頻流參數信息; 當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊; 所述監控模塊依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊; 所述物理驅動對象模塊依據所述替換數據將所述視頻流數據替換為所述替換數據;所述監控模塊依據所述應用進程標識信息提示用戶端是否允許所述應用進程讀取視頻流數據;當允許所述應用進程讀取視頻流數據時,監控模塊通知所述物理驅動對象模塊停止替換。
15.根據權利要求14所述的方法,其特徵在於,獲取視頻設備對應的視頻流參數信息,和當讀取到視頻流數據後,將視頻流數據對應的應用進程標識信息發送至監控模塊包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊; 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流數據對應的應用進程標識信息發送至監控模塊。
16.根據權利要求14所述的方法,其特徵在於,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第一幀視頻流數據時,將所述視頻流數據對應的應用進程標識信息發送給監控模塊; 或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到第N幀視頻流數據時,其中N > I,將所述視頻流數據對應的應用進程標識信息發送給監控模塊,並將第N幀之前的每幀視頻流數據中的每一字節處理為與所述視頻流數據不同的數據。
17.根據權利要求14或16所述的方法,其特徵在於,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息後,將所述視頻流參數信息發送至監控模塊時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時,將所述視頻流參數信息發送至監控模塊; 或,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,將所述視頻流參數信息發送至監控模塊; 或,當所述物理驅動對象模塊不能解析所述視頻流時,將所述視頻流的數據置換為零發送給應用進程。
18.根據權利要求17所述的方法,其特徵在於,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 在接收到視頻流參數信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊; 和/或,在接收到應用進程標識信息時,將替換數據通過控制模塊發送至所述物理驅動對象模塊。
19.根據權利要求14所述的方法,其特徵在於,在所述監控模塊中,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 將預置的第一源替換數據轉換為與視頻流參數信息對應的替換數據,並將替換數據發送至所述物理驅動對象模塊;所述與視頻流參數信息對應的替換數據為與視頻設備輸出的數據類型相同的替換數據,所述第一源替換數據包括待轉換的圖片數據。
20.根據權利要求14所述的方法,其特徵在於,依據視頻流參數信息將替換數據發送至所述物理驅動對象模塊時包括 將用戶端選擇的數據作為監控模塊進行處理的第一源替換數據。
21.根據權利要求14所述的方法,其特徵在於,還包括 通過所述監控模塊發送暫停指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為當前發送給應用進程的數據; 和/或,通過所述監控模塊發送阻斷指令至所述物理驅動對象模塊,控制所述物理驅動對象模塊從當前幀開始,將後續的每幀視頻流數據替換為替換數據; 和/或,通過所述監控模塊發送恢復指令至所述的物理驅動對象模塊,控制所述物理驅動對象模塊停止將所述視頻流數據替換為所述替換數據、和/或停止將所述後續的每幀視頻流數據替換為當前發送給應用進程的數據。
22.根據權利要求14所述的方法,其特徵在於 所述應用進程標識信息和視頻流參數信息通過監控過濾器發送給監控模塊;所述監控過濾器由所述監控模塊在控制模塊中創建。
23.根據權利要求14所述的方法,其特徵在於,依據所述替換數據,將所述視頻流數據替換為所述替換數據時包括 當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據後,判斷所述監控模塊是否已經在控制模塊中創建監控過濾器;若是,則調整所述物理驅動對象模塊為第一替換模式,用於將所述視頻流數據替換為所述替換數據; 和/或,當監控模塊接收到所述視頻流數據對應的應用進程標識信息時,通過所述監控過濾器發送替換指令至所述物理驅動對象模塊,調整所述物理驅動對象模塊為第二替換模式,用於將所述視頻流數據替換為所述替換數據。
24.根據權利要求14所述的方法,其特徵在於,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊獲取視頻設備對應的視頻流參數信息時包括 所述物理驅動對象模塊通過分析IPR_MJ_CREATE函數中的消息獲取所述視頻流參數信息。
25.根據權利要求14所述的方法,其特徵在於,當應用進程通過視頻流過濾驅動中的物理驅動對象模塊讀取到視頻流數據時包括 所述物理驅動對象模塊通過對IPR_MJ_DEVICE_CONTROL函數中的IOCTL_KS_READ_STREAM消息分析判斷是否有應用進程通過物理驅動對象模塊讀取視頻流; 若是,則獲取當前應用進程標識信息,將所述視頻流數據對應的應用進程標識信息發送給監控模塊。
26.根據權利要求14所述的方法,其特徵在於,還包括 根據系統註冊表加載過濾驅動,並在所述過濾驅動中創建控制模塊和針對視頻設備的物理驅動對象模塊。
全文摘要
本申請提供了一種計算機視頻設備保護方法和裝置,涉及計算機技術領域。在本申請的處理過程中,對於應用進程的任何一個請求消息包,均沒有強行的進行阻斷,對於帶有視頻流數據的請求包,只是將請求包中的視頻數據替換為與視頻相同格式的替換數據,既沒強行的暴力的阻斷應用進程和視頻設備之間的通訊,也不會破壞應用進程與視頻設備之間正常交互的協議,不會導致該應用進程認為視頻設備損壞而無法再次訪問視頻設備,該應用進程不用重啟即可重新訪問所述視頻設備;另外,在本申請中,是在獲取到視頻設備的視頻流數據後再提示用戶端選擇是否允許進行阻斷,不會造成誤報的情況。
文檔編號G06F21/00GK102663293SQ201210086720
公開日2012年9月12日 申請日期2012年3月28日 優先權日2012年3月28日
發明者秦光遠, 範紀鍠 申請人:奇智軟體(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀