A computer system in accordance with the present invention provides 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. The computer system provides a monolithic driver as a dispatch
between a mini-port driver and a software component. 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 with a
monolithic driver entry point which queues the event and unblocks the
event thread. The monolithic driver provides the asynchronous event to the
software component through the unblocked event thread. The event thread is
then re-blocked and remains 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.
Ένα συγκρότημα ηλεκτρονικών υπολογιστών σύμφωνα με την παρούσα εφεύρεση παρέχει μια μέθοδο τα ασύγχρονα γεγονότα από έναν οδηγό μίνι-λιμένων ενός συγκροτήματος ηλεκτρονικών υπολογιστών σε ένα τμήμα λογισμικού χωρίς ψήφιση του οδηγού μίνι-λιμένων. Το συγκρότημα ηλεκτρονικών υπολογιστών παρέχει έναν μονολιθικό οδηγό ως αποστολή μεταξύ ενός οδηγού μίνι-λιμένων και ενός τμήματος λογισμικού. Έως ότου ανιχνεύεται ένα ασύγχρονο γεγονός, ένα νήμα γεγονότος στο μονολιθικό οδηγό σε ένα τμήμα λογισμικού εμποδίζεται. Όταν ένα ασύγχρονο γεγονός ανιχνεύεται από τον οδηγό μίνι-λιμένων, ο οδηγός μίνι-λιμένων καλεί το μονολιθικό οδηγό με ένα μονολιθικό σημείο εισόδων οδηγών που περιμένει στη σειρά το γεγονός και απελευθερώνει το νήμα γεγονότος. Ο μονολιθικός οδηγός παρέχει το ασύγχρονο γεγονός στο τμήμα λογισμικού μέσω του απελευθερωμένου νήματος γεγονότος. Το νήμα γεγονότος επαν-εμποδίζεται έπειτα και παραμένει εμποδισμένο έως ότου ανιχνεύεται ένα άλλο ασύγχρονο γεγονός. Τα ασύγχρονα γεγονότα με αυτόν τον τρόπο διαβιβάζονται από έναν οδηγό μίνι-λιμένων σε ένα τμήμα λογισμικού χωρίς ψήφιση του οδηγού μίνι-λιμένων.