xpmgr/BuildTools/Include/ehstormsg.h

453 lines
11 KiB
C

/*--
Copyright (c) 2008 Microsoft Corporation
Module Name:
EhStorMsg.h
Abstract:
This file contains the message definitions for Enhanced Storage APIs.
Revision History:
--*/
#pragma once
//
// --------------------------------------------------------------------------
// Enhanced Storage error codes will use FACILITY_ITF. According to MSDN doc,
// it is recommended that code values start at 0x0200 as COM FACILITY_ITF
// will use the code values from 0x0000 - 0x01FF.
//
// The code value range is partition based on the following scheme:
//
// 0x0200 - 0x03FF: general error codes
// 0x0400 - 0x04FF: authentication related error codes
// 0x0500 - 0x0FFF: reserved for other high level feature related error codes
// 0x1000 - 0x10FF: certificate silo related error codes
// 0x1100 - 0x11FF: password silo related error codes
// 0x1200 - 0xBFFF: reserved for other silo specific error codes
// 0xC000 - 0xFFFF: reserved for 3rd party silo specific error codes
//
// --------------------------------------------------------------------------
//
#define ES_RESERVED_COM_ERROR_START 0x0000
#define ES_RESERVED_COM_ERROR_END 0x01FF
#define ES_GENERAL_ERROR_START 0x0200
#define ES_GENERAL_ERROR_END 0x03FF
#define ES_AUTHN_ERROR_START 0x0400
#define ES_AUTHN_ERROR_END 0x04FF
#define ES_RESERVED_SILO_ERROR_START 0x0500
#define ES_RESERVED_SILO_ERROR_END 0x0FFF
#define ES_CERT_SILO_ERROR_START 0x1000
#define ES_CERT_SILO_ERROR_END 0x10FF
#define ES_PW_SILO_ERROR_START 0x1100
#define ES_PW_SILO_ERROR_END 0x11FF
#define ES_RESERVED_SILO_SPECIFIC_ERROR_START 0x1200
#define ES_RESERVED_SILO_SPECIFIC_ERROR_END 0xBFFF
#define ES_VENDOR_ERROR_START 0xC000
#define ES_VENDOR_ERROR_END 0xFFFF
// -----------------------------------
// Error code related macros
// -----------------------------------
#define IS_ENHANCED_STORAGE_GENERAL_ERROR(x) ((x) >= ES_GENERAL_ERROR_START && \
(x) <= ES_GENERAL_ERROR_END)
#define IS_ENHANCED_STORAGE_AUTHN_ERROR(x) ((x) >= ES_AUTHN_ERROR_START && \
(x) <= ES_AUTHN_ERROR_END)
#define IS_ENHANCED_STORAGE_CERT_SILO_ERROR(x) ((x) >= ES_CERT_SILO_ERROR_START && \
(x) <= ES_CERT_SILO_ERROR_END)
#define IS_ENHANCED_STORAGE_PW_SILO_ERROR(x) ((x) >= ES_PW_SILO_ERROR_START && \
(x) <= ES_PW_SILO_ERROR_END)
#define IS_ENHANCED_STORAGE_VENDOR_ERROR(x) ((x) >= ES_VENDOR_ERROR_START && \
(x) <= ES_VENDOR_ERROR_END)
#define IS_ENHANCED_STORAGE_RESERVED_ERROR(x) (((x) >= ES_RESERVED_SILO_ERROR_START && \
(x) <= ES_RESERVED_SILO_ERROR_END) || \
((x) >= ES_RESERVED_SILO_SPECIFIC_ERROR_START && \
(x) <= ES_RESERVED_SILO_SPECIFIC_ERROR_END) || \
((x) >= ES_RESERVED_COM_ERROR_START && \
(x) <= ES_RESERVED_COM_ERROR_END))
//
// Values are 32 bit values laid out as follows:
//
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
// +---+-+-+-----------------------+-------------------------------+
// |Sev|C|R| Facility | Code |
// +---+-+-+-----------------------+-------------------------------+
//
// where
//
// Sev - is the severity code
//
// 00 - Success
// 01 - Informational
// 10 - Warning
// 11 - Error
//
// C - is the Customer code flag
//
// R - is a reserved bit
//
// Facility - is the facility code
//
// Code - is the facility's status code
//
//
// Define the facility codes
//
#define FACILITY_ENHANCED_STORAGE 0x4
//
// Define the severity codes
//
#define STATUS_SEVERITY_WARNING 0x2
#define STATUS_SEVERITY_SUCCESS 0x0
#define STATUS_SEVERITY_INFORMATIONAL 0x1
#define STATUS_SEVERITY_ERROR 0x3
//
// MessageId: ES_E_INVALID_RESPONSE
//
// MessageText:
//
// Hardware return invalid response.
//
#define ES_E_INVALID_RESPONSE ((DWORD)0xC0040200L)
//
// MessageId: ES_E_UNSUPPORTED_CERTIFICATE
//
// MessageText:
//
// Request used a unsupported certificate.
//
#define ES_E_UNSUPPORTED_CERTIFICATE ((DWORD)0xC0040201L)
//
// MessageId: ES_E_INVALID_CERTIFICATE
//
// MessageText:
//
// Request used an invalid certificate.
//
#define ES_E_INVALID_CERTIFICATE ((DWORD)0xC0040202L)
//
// MessageId: ES_E_UNPROVISIONED_HARDWARE
//
// MessageText:
//
// Hardware is not provision.
//
#define ES_E_UNPROVISIONED_HARDWARE ((DWORD)0xC0040204L)
//
// MessageId: ES_E_UNSUPPORTED_HARDWARE
//
// MessageText:
//
// Hardware is not supported.
//
#define ES_E_UNSUPPORTED_HARDWARE ((DWORD)0xC0040205L)
//
// MessageId: ES_E_INCOMPLETE_COMMAND
//
// MessageText:
//
// An incomplete command was received.
//
#define ES_E_INCOMPLETE_COMMAND ((DWORD)0xC0040206L)
//
// MessageId: ES_E_BAD_SEQUENCE
//
// MessageText:
//
// Command rejected for being out of sequence.
//
#define ES_E_BAD_SEQUENCE ((DWORD)0xC0040207L)
//
// MessageId: ES_E_NO_PROBE
//
// MessageText:
//
// Non-Probe command received before Probe command.
//
#define ES_E_NO_PROBE ((DWORD)0xC0040208L)
//
// MessageId: ES_E_INVALID_SILO
//
// MessageText:
//
// Invalid silo specified.
//
#define ES_E_INVALID_SILO ((DWORD)0xC0040209L)
//
// MessageId: ES_E_INVALID_CAPABILITY
//
// MessageText:
//
// Invalid capability requested.
//
#define ES_E_INVALID_CAPABILITY ((DWORD)0xC004020AL)
//
// MessageId: ES_E_GROUP_POLICY_FORBIDDEN_USE
//
// MessageText:
//
// Group policy setting forbids use.
//
#define ES_E_GROUP_POLICY_FORBIDDEN_USE ((DWORD)0xC004020BL)
//
// MessageId: ES_E_GROUP_POLICY_FORBIDDEN_OPERATION
//
// MessageText:
//
// Group policy setting forbids operation.
//
#define ES_E_GROUP_POLICY_FORBIDDEN_OPERATION ((DWORD)0xC004020CL)
//
// MessageId: ES_E_INVALID_PARAM_COMBINATION
//
// MessageText:
//
// Invalid combination of parameters specified in input data.
//
#define ES_E_INVALID_PARAM_COMBINATION ((DWORD)0xC004020DL)
//
// MessageId: ES_E_INVALID_PARAM_LENGTH
//
// MessageText:
//
// Parameter Byte Length specified in the payload is invalid.
//
#define ES_E_INVALID_PARAM_LENGTH ((DWORD)0xC004020EL)
//
// MessageId: ES_E_INCONSISTENT_PARAM_LENGTH
//
// MessageText:
//
// Parameter Byte Length specified in the payload is not consistent with the number of bytes transferred.
//
#define ES_E_INCONSISTENT_PARAM_LENGTH ((DWORD)0xC004020FL)
// -----------------------------------------
// Authentication silo related error codes
// -----------------------------------------
//
// MessageId: ES_E_NO_AUTHENTICATION_REQUIRED
//
// MessageText:
//
// Hardware does not require authentication.
//
#define ES_E_NO_AUTHENTICATION_REQUIRED ((DWORD)0xC0040400L)
// --------------------------------------
// Certificate silo related error codes
// --------------------------------------
//
// MessageId: ES_E_WRONG_CERTIFICATE_TYPE
//
// MessageText:
//
// Wrong certificate type used in the request.
//
#define ES_E_WRONG_CERTIFICATE_TYPE ((DWORD)0xC0041000L)
//
// MessageId: ES_E_INDEX_OCCUPIED
//
// MessageText:
//
// Index location occupied.
//
#define ES_E_INDEX_OCCUPIED ((DWORD)0xC0041001L)
//
// MessageId: ES_E_INVALID_SIGNER_CERT_INDEX
//
// MessageText:
//
// Invalid signer certificate index.
//
#define ES_E_INVALID_SIGNER_CERT_INDEX ((DWORD)0xC0041002L)
//
// MessageId: ES_E_FAIL_VALIDATION
//
// MessageText:
//
// Data does not meet validation policy requirements.
//
#define ES_E_FAIL_VALIDATION ((DWORD)0xC0041003L)
//
// MessageId: ES_E_UNSUPPORTED_VALIDATION
//
// MessageText:
//
// Validation policy is not supported.
//
#define ES_E_UNSUPPORTED_VALIDATION ((DWORD)0xC0041004L)
//
// MessageId: ES_E_INVALID_VALIDATION_OPERATION
//
// MessageText:
//
// An invalid validation policy operation is specified.
//
#define ES_E_INVALID_VALIDATION_OPERATION ((DWORD)0xC0041005L)
// -----------------------------------
// Password silo related error codes
// -----------------------------------
//
// MessageId: ES_E_INVALID_FIELD_IDENTIFIER
//
// MessageText:
//
// An invalid field identifier was found in the data provided by the device.
//
#define ES_E_INVALID_FIELD_IDENTIFIER ((DWORD)0xC0041100L)
//
// MessageId: ES_E_CHALLENGE_MISMATCH
//
// MessageText:
//
// The challenge provided by the device does not match the one provided in an earlier step in the authentication sequence.
//
#define ES_E_CHALLENGE_MISMATCH ((DWORD)0xC0041101L)
//
// MessageId: ES_E_CHALLENGE_SIZE_MISMATCH
//
// MessageText:
//
// The size of the challenge specified by the device does not match the choice of the digest algorithm.
//
#define ES_E_CHALLENGE_SIZE_MISMATCH ((DWORD)0xC0041102L)
//
// MessageId: ES_E_FRIENDLY_NAME_TOO_LONG
//
// MessageText:
//
// The friendly name specified for User is too long.
//
#define ES_E_FRIENDLY_NAME_TOO_LONG ((DWORD)0xC0041103L)
//
// MessageId: ES_E_SILO_NAME_TOO_LONG
//
// MessageText:
//
// The silo name specified is too long.
//
#define ES_E_SILO_NAME_TOO_LONG ((DWORD)0xC0041104L)
//
// MessageId: ES_E_PASSWORD_TOO_LONG
//
// MessageText:
//
// The password specified is too long.
//
#define ES_E_PASSWORD_TOO_LONG ((DWORD)0xC0041105L)
//
// MessageId: ES_E_PASSWORD_HINT_TOO_LONG
//
// MessageText:
//
// The password hint specified is too long.
//
#define ES_E_PASSWORD_HINT_TOO_LONG ((DWORD)0xC0041106L)
//
// MessageId: ES_E_OTHER_SECURITY_PROTOCOL_ACTIVE
//
// MessageText:
//
// Cannot enable IEEE 1667 password security since another security protocol is still active on the device.
//
#define ES_E_OTHER_SECURITY_PROTOCOL_ACTIVE ((DWORD)0xC0041107L)
//
// MessageId: ES_E_DEVICE_DIGEST_MISSING
//
// MessageText:
//
// Device digest was expected but was not found in the payload.
//
#define ES_E_DEVICE_DIGEST_MISSING ((DWORD)0xC0041108L)
//
// MessageId: ES_E_NOT_AUTHORIZED_UNEXPECTED
//
// MessageText:
//
// Expected the silo to be in Authorized state, but it was not.
//
#define ES_E_NOT_AUTHORIZED_UNEXPECTED ((DWORD)0xC0041109L)
//
// MessageId: ES_E_AUTHORIZED_UNEXPECTED
//
// MessageText:
//
// Expected the silo to be in Not Authorized state, but it was not.
//
#define ES_E_AUTHORIZED_UNEXPECTED ((DWORD)0xC004110AL)
//
// MessageId: ES_E_PROVISIONED_UNEXPECTED
//
// MessageText:
//
// Expected the silo to be in Not Provisioned state, but it was not.
//
#define ES_E_PROVISIONED_UNEXPECTED ((DWORD)0xC004110BL)
//
// MessageId: ES_E_UNKNOWN_DIGEST_ALGORITHM
//
// MessageText:
//
// The digest algorithm supported by the device is not supported in Windows.
//
#define ES_E_UNKNOWN_DIGEST_ALGORITHM ((DWORD)0xC004110CL)