Method of communicating asynchronous elements from a...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000

Reexamination Certificate

active

06378004

ABSTRACT:

CROSS-REFERENCE TO RELATED APPLICATIONS
Commonly-assigned U.S. patent application, Ser. No. 09/074,109 entitled “METHOD OF COMMUNICATING ASYNCHRONOUS EVENTS TO REMOTE PROCEDURE CALL CLIENTS” filed concurrently, is hereby incorporated by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to mini-port drivers of a computer system, and more particularly to a method of communicating asynchronous events from a mini-port driver of a computer system to a software component without polling the mini-port driver.
2. Description of the Related Art
Mini-port drivers such as a Windows NT® mini-port driver must be polled in order to communicate events detected by a mini-port driver to other software components of a computer system. A service, an example of a software component, typically polls a mini-port driver by calling a Device IoControl (Ioctl) function supported by the mini-port driver. In response to the Ioctl call, the mini-port driver provides event data in a thread to the service.
An Ioctl call to a mini-port driver may or may not be executed immediately in a thread of the mini-port driver. An Ioctl call to a mini-port driver may be executed immediately or may be executed after a delay. Further, a mini-port driver has not allowed an Ioctl calling thread in the mini-port driver to be blocked based on asynchronous events. Since a mini-port driver has not guaranteed that a process will be executed immediately or permitted selective blocking of an Ioctl calling thread based on asynchronous events, mini-port driver architecture has not allowed for communication of asynchronous events from a mini-port diver without polling the mini-port driver. Polling, being a repetitive process of calling a mini-port driver, has not depended upon immediate thread execution by a mini-port driver.
Polling a mini-port driver in order to keep event information detected by a mini-port driver current, however, has caused network traffic and system overhead. Polling also allows for event information detected by a mini-port driver to become stale for certain periods as event information detected by a mini-port driver is not updated until the mini-port driver is polled. Since a computer system may support a number of mini-port drivers, it has been necessary to poll each mini-port driver to update asynchronous event information detected by each mini-port driver. Increasing the poll frequency of mini-port drivers in an effort to maintain more current asynchronous event information undesirably increases network traffic.
SUMMARY OF THE INVENTION
Briefly, a computer system in accordance with the present invention provides a method of communicating asynchronous events from a mini-port driver to a software component without polling the mini-port driver. The computer system provides a monolithic driver as a dispatch between a mini-port driver and a software component of the computer system. Until an asynchronous event is detected, an event thread in the monolithic driver to a software component is blocked. When an asynchronous event is detected by the mini-port driver, the mini-port driver calls the monolithic driver which queues the event and unblocks the event thread. The monolithic driver provides the asynchronous event to the service through the unblocked event thread. The event thread is then blocked until another asynchronous event is detected. Asynchronous events are thereby communicated from a mini-port driver to a software component without polling the mini-port driver. Polling, however, may be performed in conjunction with this method.
In a disclosed embodiment in accordance with the present invention, the software component obtains a monolithic driver entry point from the monolithic driver. The software component then calls a mini-port driver to pass the monolithic driver entry point to the particular mini-port driver. When the mini-port driver has an event to report, the mini-port driver calls the monolithic driver entry point which queues the asynchronous event and unblocks the event thread in the monolithic driver so that the software component may receive the asynchronous event. By unblocking thread execution in a monolithic driver when an asynchronous event occurs, a mini-port driver is able to provide asynchronous event data to a software component.


REFERENCES:
patent: 5247676 (1993-09-01), Ozur et al.
patent: 5307490 (1994-04-01), Davidson et al.
patent: 5430876 (1995-07-01), Schreiber et al.
patent: 5491800 (1996-02-01), Goldsmith et al.
patent: 5513328 (1996-04-01), Christofferson
patent: 5592664 (1997-01-01), Starkey
patent: 5640556 (1997-06-01), Tamura
patent: 5802364 (1998-09-01), Senator et al.
patent: 5832513 (1998-11-01), Kennedy
patent: 5978815 (1999-11-01), Cabrera et al.
patent: 5999563 (1999-12-01), Polley et al.
Windows NT DDK, Kernel-Mode Guide, A 4.2.1 SCSI Miniport Driver's DriveEntry Routine © 1992-1996 Microsoft Corporation, pp. 1-14.
Win32 SDK:Win32, Reference, Functions, Visual C++ Books Online 4.2, “Microsoft RPC Model,” © 1992-1995 Microsoft Corporation, pp. 1-6.
Win32 Driver Model for Windows Operating Systems, Technical Information for IHVs and OEMs, © 1995 Microsoft Corporation, pp. 1-6.
Moeller, Michael, “COM+ Services Add Up,” PC Week, Apr. 13, 1998, vol. 15, No. 15, pp. 3 and 20.
Win32 Programmer's Reference, Visual C++ Books Online 4.2, “Multitasking,” © 1992-1996 Microsoft Corporation, pp. 1-28.
Win32 SDK:RPC—Microsoft Developer Network Library, “RpcStringBindingCompose,” © 1992-1995 Microsoft Corporation, pp. 1-2.
Win32 SDK:Win 32, Reference, Functions—Microsoft Developer Network Library, “CreateFile,” © 1992-1995 Microsoft Corporation, pp. 1-7.
Win32 SDK:Win 32, Reference, Functions—Microsoft Developer Network Library, “CloseHandle,” © 1992-1995 Microsoft Corporation, p. 1.
Win32 SDK:Win 32, Reference, Structures—Microsoft Developer Network Library, “SECURITY-ATTRIBUTES,” © 1992-1995 Microsoft Corporation, p. 1.
Win32 SDK:Win 32, References, Structures—Microsoft Developer Network Library, “OVERLAPPED,” © 1992-1995 Microsoft Corporation, p. 1.
Win32 SDK:Win32, Reference, Functions, Visual C++ Books Online 4.1, “DeviceIoControl,” © 1992-1996 Microsoft Corporation, pp. 1-6.
Win32 SDK:Win32, RPC, Visual C++ Books Online 4.1, “RpcServerListen,” © 1992-1996 Microsoft Corporation, pp. 1-2.
Win32 SDK:RPC, Visual C++Books Online 4.1, “RpcServer Registerlf,” © 1992-1996 Microsoft Corporation, pp. 1-6.
Win32 SDK:RPC, Visual C++Books Online 4.1. “RpcServerUseProtseqlf,” © 1992-1996 Microsoft Corporation, pp. 1-2.
Win32 SDK:RPC—Microsoft Developer Network Library, “String Building,” © 1992-1995 Microsoft Corporation, pp. 1-4.
Win32 SDK:Programmer's Reference—MSDN Library, “Anonymous Pipes,” © 1992-1996 Microsoft Corporation, pp. 1-27.
CreateNamedPipe, Microsoft Corporation, pp. 1-3.
CreateEvent, Microsoft Corporation, pp. 1-2.
WaitForSingleObject, Microsoft Coroporation, pp. 1-2.
ReadFile, Microsoft Corporation, pp. 1-4.
CreateFile, Microsoft Corporation, pp. 1-6.
CreateThread, Microsoft Corporation, pp. 1-2.
Asche, Ruediger, “Windows NT Security in Theory and Practice,” Technical Articles: Windows: Networking—Microsoft Developer Network Library, © 1992-1995 Microsoft Corporation, pp. 1-11.
Asche, Ruediger, “The Guts of Security,” Technical Articles: Windows: Networking—Microsoft Developer Network Library, © 1992-1995 Microsoft Corporation, pp. 1-20.
Digital Equipment Corporation, “Digital Distributed Computing Environment (DEC) for Windows NT,” ® 1994 Digital Equipment Corporation, pp. 1-10.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of communicating asynchronous elements from a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of communicating asynchronous elements from a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of communicating asynchronous elements from a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2898296

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.