SPB_TRANSFER_BUFFER structure (spb.h)

The SPB_TRANSFER_BUFFER structure describes the data buffer for an individual transfer in an I/O transfer sequence.

Syntax

typedef struct SPB_TRANSFER_BUFFER {
  SPB_TRANSFER_BUFFER_FORMAT Format;
  union {
    SPB_TRANSFER_BUFFER_LIST_ENTRY Simple;
    struct {
      PSPB_TRANSFER_BUFFER_LIST_ENTRY List;
      ULONG                           ListCe;
    } BufferList;
    PMDL                           Mdl;
  };
} SPB_TRANSFER_BUFFER, *PSPB_TRANSFER_BUFFER;

Members

Format

The buffer format. This member is set to one of the following SPB_TRANSFER_BUFFER_FORMAT enumeration values:

  • SpbTransferBufferFormatSimple
  • SpbTransferBufferFormatList
  • SpbTransferBufferFormatSimpleNonPaged
  • SpbTransferBufferFormatMdl

SpbTransferBufferFormatMdl is a valid value only for I/O transfer sequences that are requested by clients of the SPB controller driver that are kernel-mode components.

Simple

A SPB_TRANSFER_BUFFER_LIST_ENTRY structure that specifies the base address and the length of a simple transfer buffer. Use this member of the union if Format is SpbTransferBufferFormatSimple or SpbTransferBufferFormatSimpleNonPaged. The SpbTransferBufferFormatSimpleNonPaged format is used only by kernel-mode clients.

BufferList

A scatter-gather list that consists of an array of buffer descriptors. Use this member of the union if Format is SpbTransferBufferFormatList.

BufferList.List

A pointer to an array of SPB_TRANSFER_BUFFER_LIST_ENTRY structures that describe the buffers in the scatter-gather list.

BufferList.ListCe

The number of elements in the List array.

Mdl

A pointer to an MDL that describes the buffer. This member is used only by kernel-mode clients. Use this member of the union if Format is SpbTransferBufferFormatMdl. For more information, see Remarks.

Remarks

This structure is used by an SPB_TRANSFER_LIST_ENTRY structure to describe a transfer buffer.

The Mdl member of this structure can be used only by clients of the SPB controller driver that are kernel-mode components. User-mode clients must not use this member. For more information about MDLs, see Using MDLs.

Requirements

Requirement Value
Minimum supported client Supported starting with Windows 8.
Header spb.h

See also