Important: The information in this document is obsolete and should not be used for new development.
The Driver Resource
Listing 1-15 shows the Rez format of the'DRVR'resource type.Listing 1-15
'DRVR'resource format
type 'DRVR' { boolean = 0; boolean dontNeedLock, needLock; /* lock drvr in memory */ boolean dontNeedTime, needTime; /* for periodic action */ boolean dontNeedGoodbye, needGoodbye; /* call before heap reinit */ boolean noStatusEnable, statusEnable; /* responds to Status */ boolean noCtlEnable, ctlEnable; /* responds to Control */ boolean noWriteEnable, writeEnable; /* responds to Write */ boolean noReadEnable, readEnable; /* responds to Read */ byte = 0; integer; /* driver delay */ unsigned hex integer; /* DA event mask */ integer; /* DA menu */ unsigned hex integer; /* offset to Open */ unsigned hex integer; /* offset to Prime */ unsigned hex integer; /* offset to Control */ unsigned hex integer; /* offset to Status */ unsigned hex integer; /* offset to Close */ pstring; /* driver name */ hex string; /* driver code */ };The driver resource begins with seven flags that specify certain characteristics of the driver.You need to set the
dNeedLockflag if your driver's code should be locked in memory.You set the
dNeedTimeflag of thedrvrFlagsword if your device driver needs to perform some action periodically.You need to set the
dNeedGoodbyeflag if you want your application to receive agoodbyecontrol request before the heap is reinitialized.The last four flags indicate which Device Manager requests the driver's routines can respond to.
The next element of the resource specifies the time between periodic tasks.
The next two elements provide an event mask and menu ID for desk accessories. The section "Writing a Desk Accessory" on page 1-49 describes these fields.
Offsets to the driver routines follow the desk accessory fields. See "Entering and Exiting From Driver Routines" on page 1-29 for more information about the routine offsets.
The next element of the driver resource is the driver name. You can use uppercase and lowercase letters when naming your driver, but the first character should be a period--
.MyDriver, for example.Your driver routines, which follow the driver name, must be aligned on a word boundary.
The section "Creating a Driver Resource" on page 1-24 discusses this structure in detail.