// scsi.h
typedef struct {
UCHAR ReservationKey[8];
UCHAR Reserved[4];
UCHAR ReservationHolder : 1;
UCHAR AllTargetPorts : 1;
UCHAR Reserved1 : 6;
UCHAR Type : 4;
UCHAR Scope : 4;
UCHAR Reserved2[4];
UCHAR RelativeTargetPortIdentifier[2];
UCHAR AdditionalDescriptorLength[4];
} PRI_FULL_STATUS_DESCRIPTOR_HEADER, *PPRI_FULL_STATUS_DESCRIPTOR_HEADER;
View the official Windows Driver Kit DDI reference// storport.h
typedef struct {
UCHAR ReservationKey[8];
UCHAR Reserved[4];
UCHAR ReservationHolder : 1;
UCHAR AllTargetPorts : 1;
UCHAR Reserved1 : 6;
UCHAR Type : 4;
UCHAR Scope : 4;
UCHAR Reserved2[4];
UCHAR RelativeTargetPortIdentifier[2];
UCHAR AdditionalDescriptorLength[4];
} PRI_FULL_STATUS_DESCRIPTOR_HEADER, *PPRI_FULL_STATUS_DESCRIPTOR_HEADER;
View the official Windows Driver Kit DDI referenceNo description available.
The PRI_FULL_STATUS_DESCRIPTOR_HEADER structure is the first member of a PRI_FULL_STATUS_DESCRIPTOR structure, which is used to populate a PRI_FULL_STATUS_LIST.
ReservationKey[8]The reservation key under which the persistent reservation is held.
Reserved[4]Reserved for internal use.
ReservationHolderA reservation holder set to one indicates that all initiator and target ports described by this full status descriptor are registered and are persistent reservation holders. A reservation holder set to zero indicates that all initiator and target ports described by this full status descriptor are registered but are not persistent reservation holders.
AllTargetPortsAn AllTargetPorts value of zero indicates that this full status descriptor represents a single initiator port and target port pair. An AllTargetPorts value of one indicates:
Reserved1Reserved for internal use.
TypeIf ReservationHolder is set to one, the Type field is defined in the Persistent Reserve In command with ServiceAction=RESERVATION_ACTION_READ_KEYS. If ReservationHolder is set to zero, the contents of the Type field is not defined by this standard.
ScopeIf ReservationHolder is set to one, the Scope field is defined in the Persistent Reserve In command with ServiceAction=RESERVATION_ACTION_READ_KEYS. If ReservationHolder is set to zero, the contents of the Scope field is not defined by this standard.
Reserved2[4]Reserved for internal use.
RelativeTargetPortIdentifier[2]Identifies the target port relative to the initiator port.
AdditionalDescriptorLength[4]The AdditionalDescriptorLength field indicates the number of bytes that follow.
The PRI_FULL_STATUS_DESCRIPTOR_HEADER structure is the first member of a PRI_FULL_STATUS_DESCRIPTOR structure, which is used to populate a PRI_FULL_STATUS_LIST.
ReservationKey[8]The reservation key under which the persistent reservation is held.
Reserved[4]Reserved for internal use.
ReservationHolderA reservation holder set to one indicates that all initiator and target ports described by this full status descriptor are registered and are persistent reservation holders. A reservation holder set to zero indicates that all initiator and target ports described by this full status descriptor are registered but are not persistent reservation holders.
AllTargetPortsAn AllTargetPorts value of zero indicates that this full status descriptor represents a single initiator port and target port pair. An AllTargetPorts value of one indicates:
Reserved1Reserved for internal use.
TypeIf ReservationHolder is set to one, the Type field is defined in the Persistent Reserve In command with ServiceAction=RESERVATION_ACTION_READ_KEYS. If ReservationHolder is set to zero, the contents of the Type field is not defined by this standard.
ScopeIf ReservationHolder is set to one, the Scope field is defined in the Persistent Reserve In command with ServiceAction=RESERVATION_ACTION_READ_KEYS. If ReservationHolder is set to zero, the contents of the Scope field is not defined by this standard.
Reserved2[4]Reserved for internal use.
RelativeTargetPortIdentifier[2]Identifies the target port relative to the initiator port.
AdditionalDescriptorLength[4]The AdditionalDescriptorLength field indicates the number of bytes that follow.