Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Writing a Parental Control Software for Windows

, 8 Jul 2010
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)

Share

About the Author

Pascal Ganaye
Software Developer (Senior)
United Kingdom United Kingdom
I am a French programmer.
These days I spend most of my time with the .NET framework, JavaScript and html.

| Advertise | Privacy | Mobile
Web02 | 2.8.140905.1 | Last Updated 8 Jul 2010
Article Copyright 2010 by Pascal Ganaye
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid