Windows NT 4.0 source code leak
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

/*++
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;