|
Mac OS 9
|
Driver Gestalt interfaces. More...
#include <MacTypes.h>#include <OSUtils.h>#include <NameRegistry.h>#include <SCSI.h>#include <USB.h>#include <Disks.h>Go to the source code of this file.
Data Structures | |
| struct | DriverConfigParam |
| struct | DriverGestaltParam |
| struct | DriverGestaltDevTResponse |
| struct | DriverGestaltIntfResponse |
| struct | DriverGestaltPowerResponse |
| struct | DriverGestaltSyncResponse |
| struct | DriverGestaltBootResponse |
| struct | DriverGestaltAPIResponse |
| struct | DriverGestaltFlushResponse |
| struct | DriverGestaltPurgeResponse |
| struct | DriverGestaltEjectResponse |
| struct | DriverGestaltVMOptionsResponse |
| struct | DriverGestaltDriveAddInfoResponse |
| struct | DriverGestaltMediaInfoResponse |
| struct | DriverGestaltATADev1Response |
| union | DriverGestaltDeviceReferenceResponse |
| struct | DriverGestaltNameRegistryResponse |
| struct | DriverGestaltDeviceModelInfoResponse |
| struct | DriverGestaltSupportedMediaTypesResponse |
| struct | DriverGestaltOFBootSupportResponse |
| struct | CDDeviceCharacteristics |
| struct | partInfoRec |
| struct | vPartInfoRec |
Macros | |
| #define | GetDriverGestaltDevTResponse(p) ((DriverGestaltDevTResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltIntfResponse(p) ((DriverGestaltIntfResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltPowerResponse(p) ((DriverGestaltPowerResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltSyncResponse(p) ((DriverGestaltSyncResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltBootResponse(p) ((DriverGestaltBootResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltPurgeResponse(p) ((DriverGestaltPurgeResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltEjectResponse(p) ((DriverGestaltEjectResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltVersionResponse(p) (((NumVersion *)(&((p)->driverGestaltResponse)))) |
| #define | GetDriverGestaltAPIResponse(p) ((DriverGestaltAPIResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltBooleanResponse(p) ((Boolean *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltFlushResponse(p) ((DriverGestaltFlushResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltVMOptionsResponse(p) ((DriverGestaltVMOptionsResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltMediaInfoResponse(p) ((DriverGestaltMediaInfoResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltDeviceReferenceResponse(p) ((DriverGestaltDeviceReferenceResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltNameRegistryResponse(p) ((DriverGestaltNameRegistryResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltDeviceModelInfoResponse(p) ((DriverGestaltDeviceModelInfoResponse **)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltSupportedMediaTypesResponse(p) ((DriverGestaltSupportedMediaTypesResponse **)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltOFBootSupportResponse(p) ((DriverGestaltOFBootSupportResponse *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltATADev1Response(p) ((DriverGestaltATADev1Response *)(&((p)->driverGestaltResponse))) |
| #define | GetDriverGestaltDriveAddInfoResponse(p) ((DriverGestaltDriveAddInfoResponse *)(&((p)->driverGestaltResponse))) |
Typedefs | |
| typedef struct DriverConfigParam | DriverConfigParam |
| typedef struct DriverGestaltParam | DriverGestaltParam |
| typedef struct DriverGestaltDevTResponse | DriverGestaltDevTResponse |
| typedef struct DriverGestaltIntfResponse | DriverGestaltIntfResponse |
| typedef struct DriverGestaltPowerResponse | DriverGestaltPowerResponse |
| typedef struct DriverGestaltSyncResponse | DriverGestaltSyncResponse |
| typedef struct DriverGestaltBootResponse | DriverGestaltBootResponse |
| typedef struct DriverGestaltAPIResponse | DriverGestaltAPIResponse |
| typedef struct DriverGestaltFlushResponse | DriverGestaltFlushResponse |
| typedef struct DriverGestaltPurgeResponse | DriverGestaltPurgeResponse |
| typedef struct DriverGestaltEjectResponse | DriverGestaltEjectResponse |
| typedef struct DriverGestaltVMOptionsResponse | DriverGestaltVMOptionsResponse |
| typedef struct DriverGestaltDriveAddInfoResponse | DriverGestaltDriveAddInfoResponse |
| typedef struct DriverGestaltMediaInfoResponse | DriverGestaltMediaInfoResponse |
| typedef struct DriverGestaltATADev1Response | DriverGestaltATADev1Response |
| typedef union DriverGestaltDeviceReferenceResponse | DriverGestaltDeviceReferenceResponse |
| typedef struct DriverGestaltNameRegistryResponse | DriverGestaltNameRegistryResponse |
| typedef struct DriverGestaltDeviceModelInfoResponse | DriverGestaltDeviceModelInfoResponse |
| typedef struct DriverGestaltSupportedMediaTypesResponse | DriverGestaltSupportedMediaTypesResponse |
| typedef struct DriverGestaltOFBootSupportResponse | DriverGestaltOFBootSupportResponse |
| typedef struct CDDeviceCharacteristics | CDDeviceCharacteristics |
| typedef struct partInfoRec | partInfoRec |
| typedef partInfoRec * | partInfoRecPtr |
| typedef struct vPartInfoRec | vPartInfoRec |
| typedef vPartInfoRec * | vPartInfoRecPtr |
Driver Gestalt interfaces.
For bug reports, consult the following page on the World Wide Web:
http://developer.apple.com/bugreporter/
| anonymous enum |
kdgGetDriveAddInfo/kdcAddDriveWithInfo is used by the Alias Manager to assist in the remounting of container files. eg DiskCopy. The driver can use it to store whatever information it needs to remount a drive For example the Volume name and FileID.. What is in here is entirely dependant on the driver, we never interpret it.
This extension to the Alias Manager works as such:
If driver supports Driver Gestalt, the Alias Mgr calls the driver with a kdgGetDriveAddInfo DriverGestalt request.
Inputs to DriverGestalt: ioVRefNum = drive number ioCRefNum = driver refNum csCode = kDriverGestaltCode driverGestaltSelector = kdgGetDriveAddInfo
If the driver supports kdgGetDriveAddInfo, it returns a pointer to the drive's drive information record (DriverGestaltDriveAddInfoResponse*) in the driverGestaltResponse field and returns noErr.
The memory used by the DriverGestaltDriveAddInfoResponse and it's pointed to data, must be previously held by the disk driver with HoldMemory.
If the driver doesn't support kdgGetDriveAddInfo, it returns statusErr.
If noErr, the Alias Mgr stores the drive information record in the alias record (the length of the drive information record data is in the length field).
If driver supports Driver Gestalt, the Alias Mgr holds the drive information record in the alias with HoldMemory and then calls the driver with a kdcAddDriveWithInfo DriverConfigure request.
Inputs to DriverConfigure: ioCRefNum = driver refNum csCode = kDriverConfigureCode driverGestaltSelector = pointer to DriverGestaltDriveAddInfoResponse
If the driver supports kdcAddDriveWithInfo, it uses the information in the drive information record to add a drive to the drive queue. If the drive is added, the driver returns noErr and returns the drive number in the ioVRefNum field of the parameter block.
If the drive cannot be added (but kdcAddDriveWithInfo is supported), the driver returns nsDrvErr.
If the driver doesn't support kdcAddDriveWithInfo, it returns controlErr.
If noErr is returned, but the data in the drive information record is not up-to-date, the driver should set driveInfoChangedBit in the options field of the drive information record.
If driveInfoInteractBit in the options field is set at input, the driver may perform user interaction to mount the drive.
If noErr, the Alias Mgr tries to resolve the alias the rest of the way.
| anonymous enum |
Flags for extendedCdFeatures field Only valid when cdExtendedFeatures_Mask bit of cdFeatures field is set