scsi_data_t Structure
            
         The scsi_data_t structure is a DATA IN/OUT buffer.
               
typedef struct scsi_data {
                size_t   data_size;     /* DATA IN/OUT buffer size */
                uint8_t  *data_ptr;     /* DATA IN/OUT buffer */
                int      data_mapped;   /* data_ptr is kernel mapped, boolean */
                buf_t    *data_buf;     /* pointer to buf(9S), internal */
} scsi_data_t;The data_ptr member points to a DATA IN/OUT payload associated with some SCSI commands such as INQUIRY, READ, WRITE, and REPORT LUNS. You can read the data from the data_ptr only when data_mapped is set to 1.
               
While using the scsi:::cmd-request probe, the data_ptr is not set in the following conditions:
               
- 
                     When buf(9S)is sent with theB_PAGEIOflag or theB_MVECTORflag inb_flags.
- 
                     If the data buffer is not mapped to a kernel virtual address space. 
You can overcome this condition by using the scsi:::cmd-request-mapin probe. This probe behaves like cmd-request and also executes the bp_mapin() function, which sets the data_mapped flag to 1. You can then access the data buffer from the kernel memory by using data_ptr.
               
Caution:
Thecmd-request-mapin probe might have significant performance impact.
               The cmd-request-mapin probe also ensures that the same data buffer is accessible during the cmd-response probe.
               
For more information, see the buf(9S) and bp_mapin(9F) man pages.