X3T9.2/89-025 January 26, 1989 To: X3T9.2 From: John Lohmeyer, NCR Corporation Subj: SEARCH DATA Transfer Length Inconsistency I had another interesting phone call: The SEARCH DATA command is ambiguous about whether the transfer length field in the CDB is meant to indicate the length of the parameter list or the number of blocks to search. This inconsistency dates back to SCSI-1. I propose that we fix this inconsistency by making it clear that the transfer length field specifies the length of the parameter list. REPLACE: A transfer length of zero indicates that no data shall be searched. This condition shall be treated the same as an un-satisfied search. . . . The number of records field specifies the maximum number of records that shall be searched by this command. An un-satisfied search shall terminate when the number of records or transfer length (from the command descriptor block) have been exhausted. WITH: The transfer length field specifies the length of the SEARCH DATA parameter list in bytes. A transfer length of zero indicates that no data shall be searched. This condition shall be treated the same as an un-satisfied search. If the transfer length results in the truncation of the SEARCH DATA parameter list, the target shall terminate the command with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST with the additional sense code set to INVALID FIELD IN PARAMETER LIST. IMPLEMENTORS NOTE: Ambiguous wording in SCSI-1 standard could have been interpreted to mean that the transfer length field is the maximum number of blocks to search. . . . The number of records field specifies the maximum number of records that shall be searched. An un-satisfied search shall terminate when the number of records has been exhausted.