Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Networking /
Chapter 4 - Zone Information Protocol (ZIP) / ZIP Reference
Routines / Obtaining Zone Information


GetMyZone

The GetMyZone function returns the zone name of the node on which your application is running.

FUNCTION GetMyZone (thePBptr: XPPParmBlkPtr; 
                     async: Boolean): OSErr;
thePBptr
A pointer to an XPP parameter block.
async
A Boolean that indicates whether the function should be executed asynchronously or synchronously. Specify TRUE for asynchronous execution.
-->ioCompletionProcPtrA pointer to a completion routine.
<--ioResultOSErrThe function result.
-->csCodeIntegerAlways xCall for this function.
-->xppSubCodeIntegerAlways zipGetMyZone for
this function.
-->xppTimeoutByteThe retry interval in seconds.
-->xppRetryByteThe retry count.
-->zipBuffPtrPtrA pointer to data buffer.
-->zipInfoFieldPACKED ARRAYA data buffer for use by ZIP; first word set to 0.

Field Description
xppSubCode
A routine selector. This field is automatically set by the MPW interface to zipGetMyZone for this function.
xppTimeout
The amount of time, in seconds, that the .ATP driver should wait between attempts to obtain the data. A value of 3 or 4 seconds for the xppTimeout field is usually sufficient.
xppRetry
The number of times the .ATP driver should attempt to obtain the data before returning the request failed (reqFailed) result code.
A value of 3 or 4 is usually sufficient.
zipBuffPtr
A pointer to a 33-byte data buffer that you must allocate. ZIP returns the zone name into this buffer as a Pascal string.
zipInfoField
A 70-byte data buffer that you must allocate and initialize for use by ZIP. You must set the first word of this buffer to 0 before you call the GetMyZone function.
DESCRIPTION
Before you call GetMyZone, you must allocate a buffer that is 33 bytes in size and set the zipBuffPtr parameter block field to point to this buffer. ZIP writes the zone name that it retrieves to this buffer that you supply. You must also supply a buffer that is 70 bytes in size as the value of the zipInfoField field. This buffer is for ZIP to use. An applica-
tion running on a node on either an extended or a nonextended network can use this function to retrieve the node's zone name.

SPECIAL CONSIDERATIONS
The memory that you allocate for the parameter block and the two buffers required
by the GetMyZone function belongs to the .XPP driver until the function completes execution. You can reuse the memory or dispose of it after the operation completes.

ASSEMBLY-LANGUAGE INFORMATION
To execute the GetMyZone function from assembly language, call the _Control
trap macro with a value of xCall in the csCode field of the parameter block and
a value of zipGetMyZone in the xppSubCode field of the parameter block. To
execute this function from assembly language, you must also specify the .XPP driver
reference number.

RESULT CODES
noErr0No error
noBridgeErr-93No router is available
reqFailed-1096Request to contact router failed; retry count exceeded
tooManyReqs-1097Too many concurrent requests
noDataArea-1104Too many outstanding ATP calls
SEE ALSO
For the XPPParamBlock data type, see "The XPP Parameter Block for ZIP" beginning on page 4-10.

To get the correct reference number for the .XPP driver, you can use the Device Manager's OpenDriver function, which returns the driver reference number. For information about the OpenDriver function, see the chapter "Device Manager" in
Inside Macintosh: Devices.


Previous Book Contents Book Index Next

© Apple Computer, Inc.
7 JUL 1996