Click here to Skip to main content
15,886,518 members
Articles / Containers / Virtual Machine

Writing a Parental Control Software for Windows

Rate me:
Please Sign up or sign in to vote.
4.78/5 (9 votes)
8 Jul 2010GPL39 min read 57K   2.7K   28  
Writing a parental control software: The beginning of the adventure
////////////////////////////////////////////////////////////////////////////////
//
// Overlap.cpp prototypes
//
////////////////////////////////////////////////////////////////////////////////

// Initialize the overlapped system for handing asynchronous (overlapped) I/O
int 
InitOverlappedManager(
    );

// Issues the shutdown command for all worker threads to exit
int 
StopOverlappedManager(
    );

// Queue an overlapped operation for execution
int 
QueueOverlappedOperation(
    WSAOVERLAPPEDPLUS  *lpOverlapped, 
    SOCK_INFO          *Context
    );

// Allocate and initialize a WSAOVERLAPPEDPLUS structure which describes an overlapped operation
WSAOVERLAPPEDPLUS *
PrepareOverlappedOperation(
    SOCK_INFO                         *SocketContext,
    LspOperation                       operation,
    WSABUF                            *lpBuffers,
    DWORD                              dwBufferCount,
    LPWSAOVERLAPPED                    lpOverlapped,
    LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
    LPWSATHREADID                      lpThreadId,
    int                               *lpErrno
    );

// This function handles the completion of an overlapped operation
void CALLBACK 
IntermediateCompletionRoutine(
    DWORD           dwError, 
    DWORD           cbTransferred,
    LPWSAOVERLAPPED lpOverlapped, 
    DWORD           dwFlags
    );

// If an overlapped operation fails inline, we must undo some state
void
UndoOverlappedOperation( 
    SOCK_INFO         *SocketContext,
    WSAOVERLAPPEDPLUS *ProviderOverlapped
    );

// Frees all cached WSAOVERLAPPEDPLUS structures when the LSP is unloaded
void
FreeOverlappedLookasideList(
    );

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer (Senior)
France France
I am a French programmer.
These days I spend most of my time with the .NET framework, JavaScript and html.

Comments and Discussions