STORAGE_RPMB_DATA_FRAME structure (winioctl.h)

Using the information from IOCTL_STORAGE_QUERY_PROPERTY, an application can create an RPMB frame to perform one of the following actions: • Program Authentication Key • Query RPMB Write Counter • Authenticated Write • Authenticated Read • Authenticated Device Configuration Write • Authenticated Device Configuration Read

Syntax

typedef struct _STORAGE_RPMB_DATA_FRAME {
  BYTE Stuff[196];
  BYTE KeyOrMAC[32];
  BYTE Data[256];
  BYTE Nonce[16];
  BYTE WriteCounter[4];
  BYTE Address[2];
  BYTE BlockCount[2];
  BYTE OperationResult[2];
  BYTE RequestOrResponseType[2];
} STORAGE_RPMB_DATA_FRAME, *PSTORAGE_RPMB_DATA_FRAME;

Members

Stuff[196]

Reserved space.

KeyOrMAC[32]

Either the key to be programmed or the MAC authenticating this frame or series of frames.

Data[256]

The data input or output.

Nonce[16]

Random 128-bit number generated by host. Only required for reads.

WriteCounter[4]

32-bit counter. Only required for writes.

Address[2]

The half-sector address to operate on.

BlockCount[2]

The count of half-sector blocks to read/write.

OperationResult[2]

The result of the operation.

RequestOrResponseType[2]

The type of request or response.

Requirements

Requirement Value
Minimum supported client Windows 10 Build 20348
Minimum supported server Windows 10 Build 20348
Header winioctl.h