IAntimalwareProvider 介面 (amsi.h)

表示反惡意代碼產品的提供者。 如需程式代碼範例,請參閱 IAntimalwareProvider 介面範例

IAntimalwareProvider 介面繼承自 IUnknown 介面

繼承

IAntimalwareProvider 介面繼承自 IUnknown 介面。

方法

IAntimalwareProvider 介面具有這些方法。

 
IAntimalwareProvider::CloseSession

關閉工作階段。 (IAntimalwareProvider.CloseSession)
IAntimalwareProvider::D isplayName

要顯示的反惡意代碼提供者名稱。
IAntimalwareProvider::Scan

掃描內容串流。 (IAntimalwareProvider.Scan)

備註

自 Windows 10 版本 1903 起,Windows 已新增一種方式來啟用提供者的 Authenticode 簽署檢查。 默認會針對 32 位和 64 位進程停用此功能。 如果您要建立提供者以供測試之用,您可以適當地設定下列 Windows 登錄值來啟用或停用簽署檢查。 值為 DWORD。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

行為
0x1 簽署檢查已停用。 這是預設行為。 您也可以在測試時暫時使用此值。
0x2 已啟用 Authenticode 簽署的檢查。

刪除登錄值的行為就如同值0x1存在一樣。

注意

身為提供者,您必須使用 /ac 參數 (搭配 SignTool) ,以 Authenticode 憑證交叉簽署。 簽署二進位檔之後,您就可以使用 SignTool 和 /kp 選項進行驗證。 如果 SignTool 沒有傳回錯誤,則您的二進位檔已正確簽署。

重要

即使 Windows 登錄值不受作業系統保護,您的電腦防病毒軟體提供者仍可保護該值,因此會使其受到寫入保護。

若要檢查提供者是否正在載入,您可以 檢視程式代碼完整性事件。 請務必 啟用程式代碼完整性診斷事件的詳細信息記錄。 要尋找的事件標識碼為 30403041。 以下是一些範例。

Log Name:      Microsoft-Windows-CodeIntegrity/Verbose
Source:        Microsoft-Windows-CodeIntegrity
Date:          M/DD/YYYY H:MM:SS PM
Event ID:      3040
Task Category: (14)
Level:         Verbose
Keywords:      
User:          [DOMAIN_NAME]\Administrator
Computer:      [COMPUTER_NAME]
Description:
Code Integrity started retrieving the cached data of [PATH_AND_FILENAME] file.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
    <EventID>3040</EventID>
    <Version>0</Version>
    <Level>5</Level>
    <Task>14</Task>
    <Opcode>1</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875954700Z" />
    <EventRecordID>7</EventRecordID>
    <Correlation />
    <Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
    <Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
    <Computer>[COMPUTER_NAME]</Computer>
    <Security UserID="[USER_SID]" />
  </System>
  <EventData>
    <Data Name="FileNameLength">40</Data>
    <Data Name="FileNameBuffer">[PATH_AND_FILENAME]</Data>
  </EventData>
</Event>
Log Name:      Microsoft-Windows-CodeIntegrity/Verbose
Source:        Microsoft-Windows-CodeIntegrity
Date:          M/DD/YYYY H:MM:SS PM
Event ID:      3041
Task Category: (14)
Level:         Verbose
Keywords:      
User:          [DOMAIN_NAME]\Administrator
Computer:      [COMPUTER_NAME]
Description:
Code Integrity completed retrieval of file cache. Status 0xC0000225.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
    <EventID>3041</EventID>
    <Version>2</Version>
    <Level>5</Level>
    <Task>14</Task>
    <Opcode>2</Opcode>
    <Keywords>0x4000000000000000</Keywords>
    <TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875964700Z" />
    <EventRecordID>8</EventRecordID>
    <Correlation />
    <Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
    <Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
    <Computer>[COMPUTER_NAME]</Computer>
    <Security UserID="[USER_SID]" />
  </System>
  <EventData>
    <Data Name="Status">0xc0000225</Data>
    <Data Name="CachedFlags">0x0</Data>
    <Data Name="CacheSource">0</Data>
    <Data Name="CachedPolicy">0</Data>
  </EventData>
</Event>

規格需求

需求
最低支援的用戶端 Windows 10 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2016 [僅限傳統型應用程式]
目標平台 Windows
標頭 amsi.h

另請參閱

IAntimalwareProvider 介面範例

SignTool

AMSI 如何協助