mirror of https://github.com/UMSKT/xpmgr.git
453 lines
11 KiB
C
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)
|
|
|
|
|