mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
4.4 KiB
171 lines
4.4 KiB
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
4mmdat.h
|
|
|
|
Abstract:
|
|
|
|
This file contains structures and defines that are used
|
|
specifically for the tape drivers.
|
|
|
|
Author:
|
|
|
|
Lori Brown (Maynard)
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
//
|
|
// Defines for Log Sense Pages
|
|
//
|
|
|
|
#define LOGSENSEPAGE0 0x00
|
|
#define LOGSENSEPAGE2 0x02
|
|
#define LOGSENSEPAGE3 0x03
|
|
#define LOGSENSEPAGE30 0x30
|
|
#define LOGSENSEPAGE31 0x31
|
|
|
|
//
|
|
// Defined Log Sense Page Header
|
|
//
|
|
|
|
typedef struct _LOG_SENSE_PAGE_HEADER {
|
|
|
|
UCHAR PageCode : 6;
|
|
UCHAR Reserved1 : 2;
|
|
UCHAR Reserved2;
|
|
UCHAR Length[2]; // [0]=MSB ... [1]=LSB
|
|
|
|
} LOG_SENSE_PAGE_HEADER, *PLOG_SENSE_PAGE_HEADER;
|
|
|
|
|
|
//
|
|
// Defined Log Sense Parameter Header
|
|
//
|
|
|
|
typedef struct _LOG_SENSE_PARAMETER_HEADER {
|
|
|
|
UCHAR ParameterCode[2]; // [0]=MSB ... [1]=LSB
|
|
UCHAR LPBit : 1;
|
|
UCHAR Reserved1 : 1;
|
|
UCHAR TMCBit : 2;
|
|
UCHAR ETCBit : 1;
|
|
UCHAR TSDBit : 1;
|
|
UCHAR DSBit : 1;
|
|
UCHAR DUBit : 1;
|
|
UCHAR ParameterLength;
|
|
|
|
} LOG_SENSE_PARAMETER_HEADER, *PLOG_SENSE_PARAMETER_HEADER;
|
|
|
|
|
|
//
|
|
// Defined Log Page Information - statistical values, accounts
|
|
// for maximum parameter values that is returned for each page
|
|
//
|
|
|
|
typedef struct _LOG_SENSE_PAGE_INFORMATION {
|
|
|
|
union {
|
|
|
|
struct {
|
|
UCHAR Page0;
|
|
UCHAR Page2;
|
|
UCHAR Page3;
|
|
UCHAR Page30;
|
|
UCHAR Page31;
|
|
} PageData ;
|
|
|
|
struct {
|
|
LOG_SENSE_PARAMETER_HEADER Parm1;
|
|
UCHAR TotalRewrites[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm2;
|
|
UCHAR TotalErrorCorrected[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm3;
|
|
UCHAR NotApplicable[2]; // Always 0
|
|
LOG_SENSE_PARAMETER_HEADER Parm4;
|
|
UCHAR TotalBytesProcessed[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm5;
|
|
UCHAR TotalUnrecoverableErrors[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm6;
|
|
UCHAR RewritesLastReadOp[2];
|
|
} Page2 ;
|
|
|
|
struct {
|
|
LOG_SENSE_PARAMETER_HEADER Parm1;
|
|
UCHAR TotalRereads[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm2;
|
|
UCHAR TotalErrorCorrected[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm3;
|
|
UCHAR TotalCorrectableECCC3[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm4;
|
|
UCHAR TotalBytesProcessed[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm5;
|
|
UCHAR TotalUnrecoverableErrors[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm6;
|
|
UCHAR RereadsLastWriteOp[2];
|
|
} Page3 ;
|
|
|
|
struct {
|
|
LOG_SENSE_PARAMETER_HEADER Parm1;
|
|
UCHAR CurrentGroupsWritten[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm2;
|
|
UCHAR CurrentRewrittenFrames[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm3;
|
|
UCHAR CurrentGroupsRead[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm4;
|
|
UCHAR CurrentECCC3Corrections[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm5;
|
|
UCHAR PreviousGroupsWritten[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm6;
|
|
UCHAR PreviousRewrittenFrames[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm7;
|
|
UCHAR PreviousGroupsRead[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm8;
|
|
UCHAR PreviousECCC3Corrections[2];
|
|
LOG_SENSE_PARAMETER_HEADER Parm9;
|
|
UCHAR TotalGroupsWritten[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm10;
|
|
UCHAR TotalRewritteFrames[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm11;
|
|
UCHAR TotalGroupsRead[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm12;
|
|
UCHAR TotalECCC3Corrections[3];
|
|
LOG_SENSE_PARAMETER_HEADER Parm13;
|
|
UCHAR LoadCount[2];
|
|
} Page30 ;
|
|
|
|
struct {
|
|
LOG_SENSE_PARAMETER_HEADER Parm1;
|
|
UCHAR RemainingCapacityPart0[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm2;
|
|
UCHAR RemainingCapacityPart1[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm3;
|
|
UCHAR MaximumCapacityPart0[4];
|
|
LOG_SENSE_PARAMETER_HEADER Parm4;
|
|
UCHAR MaximumCapacityPart1[4];
|
|
} Page31 ;
|
|
|
|
} LogSensePage;
|
|
|
|
|
|
} LOG_SENSE_PAGE_INFORMATION, *PLOG_SENSE_PAGE_INFORMATION;
|
|
|
|
|
|
|
|
//
|
|
// Defined Log Sense Parameter Format - statistical values, accounts
|
|
// for maximum parameter values that is returned
|
|
//
|
|
|
|
typedef struct _LOG_SENSE_PARAMETER_FORMAT {
|
|
|
|
LOG_SENSE_PAGE_HEADER LogSenseHeader;
|
|
LOG_SENSE_PAGE_INFORMATION LogSensePageInfo;
|
|
|
|
} LOG_SENSE_PARAMETER_FORMAT, *PLOG_SENSE_PARAMETER_FORMAT;
|
|
|
|
|