[cifs-protocol] RE: MS-ERREF addition requested

Bill Wesse billwe at microsoft.com
Wed Apr 1 16:42:54 GMT 2009


Mr. Loafman, thanks for your question. I have created case SRX090331600478, and filed a documentation change request (details below), as applicable to:

[MS-ERREF]: Windows Error Codes
2.1 HRESULT
2.3.1 NTSTATUS values

The specific error code you asked about (0xC00001A1) is new, and is documented in the 'Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1: BETA, which is available as a DVD iso at:

http://www.microsoft.com/downloads/details.aspx?FamilyID=A91DC12A-FC94-4027-B67E-46BAB7C5226C&displaylang=en

Here is the actual declaration:

//
// MessageId: STATUS_INVALID_LOCK_RANGE
//
// MessageText:
//
// A requested file lock operation cannot be processed due to an invalid byte range.
//
#define STATUS_INVALID_LOCK_RANGE        ((NTSTATUS)0xC00001A1L)

==============================================================================
Documentation change request details.
==============================================================================

2.1 HRESULT

New facility codes in Win7 ntstatus.h:

Facility (11 bits):

8 FACILITY_NTCERT
60 FACILITY_DIS
62 FACILITY_WIN32K_NTUSER
63 FACILITY_WIN32K_NTGDI

#define FACILITY_WIN32K_NTUSER           0x3E
#define FACILITY_WIN32K_NTGDI            0x3F
#define FACILITY_MAXIMUM_VALUE           0x3F // Was 0x3A
#define FACILITY_DIS                     0x3C
#define FACILITY_NTCERT                  0x8

==============================================================================
2.3.1 NTSTATUS values

New error codes in Win7 ntstatus.h:

// The oplock that was associated with this handle is now associated with a different handle.
#define STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE ((NTSTATUS)0x00000215L)

// The handle with which this oplock was associated has been closed.  The oplock is now broken.
#define STATUS_OPLOCK_HANDLE_CLOSED      ((NTSTATUS)0x00000216L)

// An oplock of the requested level cannot be granted.  An oplock of a lower level may be available.
#define STATUS_CANNOT_GRANT_REQUESTED_OPLOCK ((NTSTATUS)0x8000002EL)

// An attribute was successfully built.
#define STATUS_DIS_ATTRIBUTE_BUILT       ((NTSTATUS)0x003C0001L)

// An oplock of the requested level cannot be granted.  An oplock of a lower level may be available.
#define STATUS_CANNOT_GRANT_REQUESTED_OPLOCK ((NTSTATUS)0x8000002EL)

// {No ACE Condition}
// The specified access control entry (ACE) does not contain a condition.
#define STATUS_NO_ACE_CONDITION          ((NTSTATUS)0x8000002FL)

// BitLocker encryption keys were ignored because the volume was in a transient state.
#define STATUS_FVE_TRANSIENT_STATE       ((NTSTATUS)0x80210002L)

// Short name settings may not be changed on this volume due to the global registry setting.
#define STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING ((NTSTATUS)0xC000019EL)

// Short names are not enabled on this volume.
#define STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME ((NTSTATUS)0xC000019FL)

// The security stream for the given volume is in an inconsistent state.
// Please run CHKDSK on the volume.
#define STATUS_SECURITY_STREAM_IS_INCONSISTENT ((NTSTATUS)0xC00001A0L)

// A requested file lock operation cannot be processed due to an invalid byte range.
#define STATUS_INVALID_LOCK_RANGE        ((NTSTATUS)0xC00001A1L)

// {Invalid ACE Condition}
// The specified access control entry (ACE) contains an invalid condition.
#define STATUS_INVALID_ACE_CONDITION     ((NTSTATUS)0xC00001A2L)

// The subsystem needed to support the image type is not present.
#define STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT ((NTSTATUS)0xC00001A3L)

// {Invalid ACE Condition}
// The specified file already has a notification GUID associated with it.
#define STATUS_NOTIFICATION_GUID_ALREADY_DEFINED ((NTSTATUS)0xC00001A4L)

// The source object's SID already exists in destination forest.
#define STATUS_DS_SRC_SID_EXISTS_IN_FOREST ((NTSTATUS)0xC0000419L)

// The domain name of the trusted domain already exists in the forest.
#define STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST ((NTSTATUS)0xC000041AL)

// The flat name of the trusted domain already exists in the forest.
#define STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST ((NTSTATUS)0xC000041BL)

// The User Principal Name (UPN) is invalid.
#define STATUS_INVALID_USER_PRINCIPAL_NAME ((NTSTATUS)0xC000041CL)

// The required security context does not exist.
#define STATUS_NO_SECURITY_CONTEXT       ((NTSTATUS)0xC000042DL)

// The PKU2U protocol encountered an error while attempting to utilize the associated certificates.
#define STATUS_PKU2U_CERT_FAILURE        ((NTSTATUS)0xC000042EL)

// Insufficient NVRAM resources exist to complete the API.  A reboot might be required.
#define STATUS_INSUFFICIENT_NVRAM_RESOURCES ((NTSTATUS)0xC0000454L)    

// {Fail Fast Exception}
// A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.
#define STATUS_FAIL_FAST_EXCEPTION       ((NTSTATUS)0xC0000602L)

// Windows cannot verify the digital signature for this file. The signing certificate for this file has been revoked.
#define STATUS_IMAGE_CERT_REVOKED        ((NTSTATUS)0xC0000603L)

// The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken.
#define STATUS_CANNOT_BREAK_OPLOCK       ((NTSTATUS)0xC0000909L)

// OID mapped groups cannot have members.
#define STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS ((NTSTATUS)0xC000A087L)

// The specified OID cannot be found.
#define STATUS_DS_OID_NOT_FOUND          ((NTSTATUS)0xC000A088L)

// Hash generation for the specified version and hash type is not enabled on server.
#define STATUS_HASH_NOT_SUPPORTED        ((NTSTATUS)0xC000A100L)

// The hash requests is not present or not up to date with the current file contents.
#define STATUS_HASH_NOT_PRESENT          ((NTSTATUS)0xC000A101L)

// The handle is no longer properly associated with its transaction.  It may have been opened in a transactional resource manager that was subsequently forced to restart.  Please close the handle and open a new one.
#define STATUS_EXPIRED_HANDLE            ((NTSTATUS)0xC0190060L)

// The specified operation could not be performed because the resource manager is not enlisted in the transaction.
#define STATUS_TRANSACTION_NOT_ENLISTED  ((NTSTATUS)0xC0190061L)

// Monitor descriptor contains invalid manufacture date.
#define STATUS_MONITOR_INVALID_MANUFACTURE_DATE ((NTSTATUS)0xC01D000AL)

// Present redirection is disabled (desktop windowing management subsystem is off).
#define STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED ((NTSTATUS)0xC01E000BL)

// Previous exclusive VidPn source owner has released its ownership #define STATUS_GRAPHICS_PRESENT_UNOCCLUDED ((NTSTATUS)0xC01E000CL)

// This feature of BitLocker Drive Encryption is not included with this version of Windows.
#define STATUS_FVE_NO_FEATURE_LICENSE    ((NTSTATUS)0xC0210026L)

// Group policy does not permit turning off BitLocker Drive Encryption on roaming data volumes.
#define STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED ((NTSTATUS)0xC0210027L)

// Bitlocker Drive Encryption failed to recover from aborted conversion. This could be due to either all conversion logs being corrupted or the media being write-protected.
#define STATUS_FVE_CONV_RECOVERY_FAILED  ((NTSTATUS)0xC0210028L)

// The requested virtualization size is too big.
#define STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG ((NTSTATUS)0xC0210029L)

// The drive is too small to be protected using BitLocker Drive Encryption.
#define STATUS_FVE_VOLUME_TOO_SMALL      ((NTSTATUS)0xC0210030L)

// A policy cannot contain the same auth method more than once.
#define STATUS_FWP_DUPLICATE_AUTH_METHOD ((NTSTATUS)0xC022003CL)

// The list of wake on LAN patterns is full.
#define STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL ((NTSTATUS)0xC0232003L)

// The list of low power protocol offloads is full.
#define STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL ((NTSTATUS)0xC0232004L)

// The TCP connection is not offloadable because of a local policy setting.
#define STATUS_NDIS_OFFLOAD_POLICY       ((NTSTATUS)0xC023100FL)

// The TCP connection is not offloadable by the Chimney offload target.
#define STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED ((NTSTATUS)0xC0231012L)

// The IP Path object is not in an offloadable state.
#define STATUS_NDIS_OFFLOAD_PATH_REJECTED ((NTSTATUS)0xC0231013L)

// IPsec dropped an incoming ESP packet in authenticated firewall mode.  This drop is benign.
#define STATUS_IPSEC_AUTH_FIREWALL_DROP  ((NTSTATUS)0xC0360008L)

// IPsec dropped a packet due to DOS throttle.
#define STATUS_IPSEC_THROTTLE_DROP       ((NTSTATUS)0xC0360009L)

// IPsec Dos Protection matched an explicit block rule.
#define STATUS_IPSEC_DOSP_BLOCK          ((NTSTATUS)0xC0368000L)

// IPsec Dos Protection received an IPsec specific multicast packet which is not allowed.
#define STATUS_IPSEC_DOSP_RECEIVED_MULTICAST ((NTSTATUS)0xC0368001L)

// IPsec Dos Protection received an incorrectly formatted packet.
#define STATUS_IPSEC_DOSP_INVALID_PACKET ((NTSTATUS)0xC0368002L)

// IPsec Dos Protection failed to lookup state.
#define STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED ((NTSTATUS)0xC0368003L)

// IPsec Dos Protection failed to create state because there are already maximum number of entries allowed by policy.
#define STATUS_IPSEC_DOSP_MAX_ENTRIES    ((NTSTATUS)0xC0368004L)

// IPsec Dos Protection received an IPsec negotiation packet for a keying module which is not allowed by policy.
#define STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED ((NTSTATUS)0xC0368005L)

// IPsec Dos Protection failed to create per internal IP ratelimit queue because there is already maximum number of queues allowed by policy.
#define STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES ((NTSTATUS)0xC0368006L)

// The system does not support mirrored volumes.
#define STATUS_VOLMGR_MIRROR_NOT_SUPPORTED ((NTSTATUS)0xC038005BL)

// The system does not support RAID-5 volumes.
#define STATUS_VOLMGR_RAID5_NOT_SUPPORTED ((NTSTATUS)0xC038005CL)

// A virtual disk support provider for the specified file was not found.
#define STATUS_VIRTDISK_PROVIDER_NOT_FOUND ((NTSTATUS)0xC03A0014L)

// The specified disk is not a virtual disk.
#define STATUS_VIRTDISK_NOT_VIRTUAL_DISK ((NTSTATUS)0xC03A0015L)

// The chain of virtual hard disks is inaccessible. The process has not been granted access rights to the parent virtual hard disk for the differencing disk.
#define STATUS_VHD_PARENT_VHD_ACCESS_DENIED ((NTSTATUS)0xC03A0016L)

// The chain of virtual hard disks is corrupted. There is a mismatch in the virtual sizes of the parent virtual hard disk and differencing disk.
#define STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH ((NTSTATUS)0xC03A0017L)

// The chain of virtual hard disks is corrupted. A differencing disk is indicated in its own parent chain.
#define STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED ((NTSTATUS)0xC03A0018L)

// The chain of virtual hard disks is inaccessible. There was an error opening a virtual hard disk further up the chain.
#define STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT ((NTSTATUS)0xC03A0019L)


Regards,
Bill Wesse
MCSE, MCTS / Senior Escalation Engineer, US-CSS DSC PROTOCOL TEAM
8055 Microsoft Way
Charlotte, NC 28273
TEL:  +1(980) 776-8200
CELL: +1(704) 661-5438
FAX:  +1(704) 665-9606


-----Original Message-----
From: zachary.loafman at isilon.com [mailto:zachary.loafman at isilon.com] 
Sent: Tuesday, March 31, 2009 6:35 PM
To: Interoperability Documentation Help
Cc: cifs-protocol at samba.org; pfif at tridgell.net
Subject: MS-ERREF addition requested

(Resending with CC to dochelp)

Win7 build 7000 is sending NT status code 0xC00001A1 in response to
certain Byte-Range Lock operations, for example the offset = UINT64_MAX,
length = UINT64_MAX case. I totally agree with this change, but MS-ERREF
does not document 0xC00001A1, nor do any public-facing documents that I
can find. Can we get this documented?

(An example of this can be found in the smbtorture RAW-LOCK test.)

-- 
Zach Loafman | Staff Engineer | Isilon Systems



More information about the cifs-protocol mailing list