次の方法で共有


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値が存在するかのように動作します。

注意

プロバイダーは、スイッチ (SignTool を使用) を使用/acして Authenticode 証明書とのクロス署名を行う必要があります。 バイナリに署名したら、SignTool と /kp オプションを使用して検証できます。 SignTool からエラーが返されない場合、バイナリは正しく署名されます。

重要

Windows レジストリの値がオペレーティング システムによって保護されていない場合でも、コンピューターのウイルス対策プロバイダーによって値が保護され、書き込み保護される場合があります。

プロバイダーが読み込み中かどうかをチェックするには、コード整合性イベントを表示できます。 コード整合性診断イベントの詳細ログ記録を有効にしてください。 検索するイベント ID は 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 が役立つしくみ