WDK Mini Filter Example
userscan.c File Reference
#include <stdio.h>
#include <assert.h>
#include "userscan.h"
#include "utility.h"

Go to the source code of this file.

Data Structures

struct  _SCANNER_MESSAGE
 
struct  _SCANNER_REPLY_MESSAGE
 

Macros

#define USER_SCAN_THREAD_COUNT   6
 
#define SCANNER_MESSAGE_SIZE   (sizeof(FILTER_MESSAGE_HEADER) + sizeof(AV_SCANNER_NOTIFICATION))
 
#define SCANNER_REPLY_MESSAGE_SIZE   (sizeof(FILTER_REPLY_HEADER) + sizeof(ULONG))
 

Typedefs

typedef struct _SCANNER_MESSAGE SCANNER_MESSAGE
 
typedef struct _SCANNER_MESSAGEPSCANNER_MESSAGE
 
typedef struct _SCANNER_REPLY_MESSAGE SCANNER_REPLY_MESSAGE
 
typedef struct _SCANNER_REPLY_MESSAGEPSCANNER_REPLY_MESSAGE
 

Functions

AVSCAN_RESULT UserScanMemoryStream (_In_reads_bytes_(Size) PUCHAR StartingAddress, _In_ SIZE_T Size, _Inout_ PBOOLEAN pAbort)
 
HRESULT UserScanHandleStartScanMsg (_In_ PUSER_SCAN_CONTEXT Context, _In_ PSCANNER_MESSAGE Message, _In_ PSCANNER_THREAD_CONTEXT ThreadCtx)
 
HRESULT UserScanWorker (_Inout_ PUSER_SCAN_CONTEXT Context)
 
HRESULT UserScanListenAbortProc (_Inout_ PUSER_SCAN_CONTEXT Context)
 
DWORD WaitForAll (_In_ PSCANNER_THREAD_CONTEXT ScanThreadCtxes)
 
HRESULT UserScanGetThreadContextById (_In_ DWORD ThreadId, _In_ PUSER_SCAN_CONTEXT Context, _Out_ PSCANNER_THREAD_CONTEXT *ScanThreadCtx)
 
VOID UserScanSynchronizedCancel (_In_ PUSER_SCAN_CONTEXT Context)
 
HRESULT UserScanClosePorts (_In_ PUSER_SCAN_CONTEXT Context)
 
HRESULT UserScanCleanup (_In_ PUSER_SCAN_CONTEXT Context)
 
HRESULT UserScanInit (_Inout_ PUSER_SCAN_CONTEXT Context)
 
HRESULT UserScanFinalize (_In_ PUSER_SCAN_CONTEXT Context)
 

Macro Definition Documentation

◆ SCANNER_MESSAGE_SIZE

#define SCANNER_MESSAGE_SIZE   (sizeof(FILTER_MESSAGE_HEADER) + sizeof(AV_SCANNER_NOTIFICATION))

Definition at line 57 of file userscan.c.

◆ SCANNER_REPLY_MESSAGE_SIZE

#define SCANNER_REPLY_MESSAGE_SIZE   (sizeof(FILTER_REPLY_HEADER) + sizeof(ULONG))

Definition at line 75 of file userscan.c.

◆ USER_SCAN_THREAD_COUNT

#define USER_SCAN_THREAD_COUNT   6

Definition at line 30 of file userscan.c.

Typedef Documentation

◆ PSCANNER_MESSAGE

◆ PSCANNER_REPLY_MESSAGE

◆ SCANNER_MESSAGE

◆ SCANNER_REPLY_MESSAGE

Function Documentation

◆ UserScanCleanup()

HRESULT UserScanCleanup ( _In_ PUSER_SCAN_CONTEXT  Context)

Definition at line 579 of file userscan.c.

◆ UserScanClosePorts()

HRESULT UserScanClosePorts ( _In_ PUSER_SCAN_CONTEXT  Context)

Definition at line 540 of file userscan.c.

◆ UserScanFinalize()

HRESULT UserScanFinalize ( _In_ PUSER_SCAN_CONTEXT  Context)

Definition at line 362 of file userscan.c.

◆ UserScanGetThreadContextById()

HRESULT UserScanGetThreadContextById ( _In_ DWORD  ThreadId,
_In_ PUSER_SCAN_CONTEXT  Context,
_Out_ PSCANNER_THREAD_CONTEXT ScanThreadCtx 
)

Definition at line 434 of file userscan.c.

◆ UserScanHandleStartScanMsg()

HRESULT UserScanHandleStartScanMsg ( _In_ PUSER_SCAN_CONTEXT  Context,
_In_ PSCANNER_MESSAGE  Message,
_In_ PSCANNER_THREAD_CONTEXT  ThreadCtx 
)

Definition at line 722 of file userscan.c.

◆ UserScanInit()

HRESULT UserScanInit ( _Inout_ PUSER_SCAN_CONTEXT  Context)

Definition at line 138 of file userscan.c.

◆ UserScanListenAbortProc()

HRESULT UserScanListenAbortProc ( _Inout_ PUSER_SCAN_CONTEXT  Context)

Definition at line 1074 of file userscan.c.

◆ UserScanMemoryStream()

AVSCAN_RESULT UserScanMemoryStream ( _In_reads_bytes_(Size) PUCHAR  StartingAddress,
_In_ SIZE_T  Size,
_Inout_ PBOOLEAN  pAbort 
)

Definition at line 637 of file userscan.c.

◆ UserScanSynchronizedCancel()

VOID UserScanSynchronizedCancel ( _In_ PUSER_SCAN_CONTEXT  Context)

Definition at line 478 of file userscan.c.

◆ UserScanWorker()

HRESULT UserScanWorker ( _Inout_ PUSER_SCAN_CONTEXT  Context)

Definition at line 878 of file userscan.c.

◆ WaitForAll()

DWORD WaitForAll ( _In_ PSCANNER_THREAD_CONTEXT  ScanThreadCtxes)

Definition at line 404 of file userscan.c.

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com