IMA_LuReadCapacity - Gets the SCSI READ CAPACITY data for the specified logical unit
cc [ flag... ] file... -lima [ library... ] #include <ima.h> IMA_STATUS IMA_LuReadCapacity( /* in */ IMA_OID deviceOid, /* in */ IMA_UINT cdbLength, /* out */ IMA_BYTE *pOutputBuffer, /* in, out */ IMA_UINT *pOutputBufferLength, /* out */ IMA_BYTE *pSenseBuffer, /* in, out */ IMA_UINT *pSenseBufferLength );
The object ID of the target or logical unit (LU) whose READ CAPACITY data is being retrieved. If the object ID specifies a target, then the READ CAPACITY command will be sent to LUN 0 of the target.
The length in bytes of the READ CAPACITY CDB that is sent to the target or LU. Valid values of this CDB length are 10 and 16. Support of the 10 byte CDB is mandatory, while support for the 16 byte CDB is optional.
A pointer to the memory location, that, on successful completion of the READ CAPACITY command, contains the data returned by the logical unit.
On entry, this argument points to the length, in bytes, of the memory area specified by the pOutputBuffer argument. If returned successfully, the pOutputBufferLength argument points to the number of bytes that were actually placed into the output buffer.
A pointer to a memory location, that, if the READ CAPACITY command fails with a CHECK CONDITION status, contains the sense data received from the logical unit. If the pSenseBuffer argument is NULL, then no sense data is transferred to the client if the READ CAPACITY command fails with a CHECK CONDITION status.
A pointer to the sense buffer length. On entry to the function, this argument points to a variable containing the maximum length, in bytes, of the pSenseBuffer argument. If the API returns the value, IMA_ERROR_SCSI_STATUS_CHECK_CONDITION, then, on exit this argument contains the number of sense data bytes returned in the pSenseBuffer argument. If the pSenseBuffer argument is NULL, then the value of the pSenseBufferLength argument is 0. If any other value is returned by the API, then, on exit this value remains the same as on entry.
The IMA_LuReadCapacity() API gets the SCSI READ CAPACITY data for the specified logical unit.
Returned if the pOutputBuffer argument is NULL, or specifies a memory area to which the pOutputBufferLength argument bytes cannot be written.
Returned if the pOutputBufferLength argument is 0.
Returned if the pSenseBufferLength argument is greater than zero, and the pSenseBuffer argument specifies a memory area to which the pSenseBufferLength argument bytes cannot be written.
Returned if the deviceOid argument does not specify a valid object type.
Returned if the deviceOid argument does not specify a target or LU object.
Returned if the deviceOid argument does not specify a target or LU known to the system.
Returned if the SCSI READ CAPACITY command fails with a CHECK CONDITION status. If this value is returned, then if the pSenseBuffer argument is not NULL, it contains the sense data returned by the logical unit.
Returned if the target associated with the specified LU failed to respond to an iSCSI login request from an initiator.
Returned if the target associated with the specified LU rejected an iSCSI login request from an initiator.
See attributes(7) for descriptions of the following attributes:
|
libima(3LIB), attributes(7), IMA_LuInquiry(3IMA), IMA_LuReportLuns(3IMA)