220 lines
6.6 KiB
C
220 lines
6.6 KiB
C
/*++
|
||
|
||
Copyright (c) 1990 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
status.h
|
||
|
||
Abstract:
|
||
|
||
This module defines manifest constants for the LAN Manager server.
|
||
|
||
Author:
|
||
|
||
David Treadwell (davidtr) 10-May-1990
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#ifndef _STATUS_
|
||
#define _STATUS_
|
||
|
||
|
||
|
||
//
|
||
// The server has 16 bits available to it in each 32-bit status code.
|
||
// See \nt\sdk\inc\ntstatus.h for a description of the use of the
|
||
// high 16 bits of the status.
|
||
//
|
||
// The layout of the bits is:
|
||
//
|
||
// 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| Facility--Server | Class | Code |
|
||
// +---+-+-------------------------+-------+-----------------------+
|
||
//
|
||
// Class values:
|
||
// 0 - a server-specific error code, not put directly on the wire.
|
||
// 1 - SMB error class DOS. This includes those OS/2 errors
|
||
// that share code values and meanings with the SMB protocol.
|
||
// 2 - SMB error class SERVER.
|
||
// 3 - SMB error class HARDWARE.
|
||
// 4 - other SMB error classes
|
||
// 5-E - undefined
|
||
// F - an OS/2-specific error. If the client is OS/2, then the
|
||
// SMB error class is set to DOS and the code is set to
|
||
// the actual OS/2 error code contained in the Code field.
|
||
//
|
||
// The meaning of the Code field depends on the Class value. If the
|
||
// class is 00, then the code value is arbitrary. For other classes,
|
||
// the code is the actual code of the error in the SMB or OS/2
|
||
// protocols.
|
||
//
|
||
|
||
#define SRV_STATUS_FACILITY_CODE 0x00980000L
|
||
#define SRV_SRV_STATUS (0xC0000000L | SRV_STATUS_FACILITY_CODE)
|
||
#define SRV_DOS_STATUS (0xC0001000L | SRV_STATUS_FACILITY_CODE)
|
||
#define SRV_SERVER_STATUS (0xC0002000L | SRV_STATUS_FACILITY_CODE)
|
||
#define SRV_HARDWARE_STATUS (0xC0003000L | SRV_STATUS_FACILITY_CODE)
|
||
#define SRV_WIN32_STATUS (0xC000E000L | SRV_STATUS_FACILITY_CODE)
|
||
#define SRV_OS2_STATUS (0xC000F000L | SRV_STATUS_FACILITY_CODE)
|
||
|
||
//++
|
||
//
|
||
// BOOLEAN
|
||
// SmbIsSrvStatus (
|
||
// IN NTSTATUS Status
|
||
// )
|
||
//
|
||
// Routine Description:
|
||
//
|
||
// Macro to determine whether a status code is one defined by the
|
||
// server (has the server facility code).
|
||
//
|
||
// Arguments:
|
||
//
|
||
// Status - the status code to check.
|
||
//
|
||
// Return Value:
|
||
//
|
||
// BOOLEAN - TRUE if the facility code is the servers, FALSE
|
||
// otherwise.
|
||
//
|
||
//--
|
||
|
||
#define SrvIsSrvStatus(Status) \
|
||
( ((Status) & 0x1FFF0000) == SRV_STATUS_FACILITY_CODE ? TRUE : FALSE )
|
||
|
||
//++
|
||
//
|
||
// UCHAR
|
||
// SmbErrorClass (
|
||
// IN NTSTATUS Status
|
||
// )
|
||
//
|
||
// Routine Description:
|
||
//
|
||
// This macro extracts the error class field from a server status
|
||
// code.
|
||
//
|
||
// Arguments:
|
||
//
|
||
// Status - the status code from which to get the error class.
|
||
//
|
||
// Return Value:
|
||
//
|
||
// UCHAR - the server error class of the status code.
|
||
//
|
||
//--
|
||
|
||
#define SrvErrorClass(Status) ((UCHAR)( ((Status) & 0x0000F000) >> 12 ))
|
||
|
||
//++
|
||
//
|
||
// UCHAR
|
||
// SmbErrorCode (
|
||
// IN NTSTATUS Status
|
||
// )
|
||
//
|
||
// Routine Description:
|
||
//
|
||
// This macro extracts the error code field from a server status
|
||
// code.
|
||
//
|
||
// Arguments:
|
||
//
|
||
// Status - the status code from which to get the error code.
|
||
//
|
||
// Return Value:
|
||
//
|
||
// UCHAR - the server error code of the status code.
|
||
//
|
||
//--
|
||
|
||
#define SrvErrorCode(Status) ((USHORT)( (Status) & 0xFFF) )
|
||
|
||
//
|
||
// Status codes unique to the server. These error codes are used
|
||
// internally only.
|
||
//
|
||
|
||
#define STATUS_ENDPOINT_CLOSED (SRV_SRV_STATUS | 0x01)
|
||
#define STATUS_DISCONNECTED (SRV_SRV_STATUS | 0x02)
|
||
#define STATUS_SERVER_ALREADY_STARTED (SRV_SRV_STATUS | 0x04)
|
||
#define STATUS_SERVER_NOT_STARTED (SRV_SRV_STATUS | 0x05)
|
||
#define STATUS_OPLOCK_BREAK_UNDERWAY (SRV_SRV_STATUS | 0x06)
|
||
#define STATUS_NONEXISTENT_NET_NAME (SRV_SRV_STATUS | 0x08)
|
||
|
||
//
|
||
// Error codes that exist in both the SMB protocol and OS/2 but not NT.
|
||
// Note that all SMB DOS-class error codes are defined in OS/2.
|
||
//
|
||
|
||
#define STATUS_OS2_INVALID_FUNCTION (SRV_DOS_STATUS | ERROR_INVALID_FUNCTION)
|
||
#define STATUS_OS2_TOO_MANY_OPEN_FILES \
|
||
(SRV_DOS_STATUS | ERROR_TOO_MANY_OPEN_FILES)
|
||
#define STATUS_OS2_INVALID_ACCESS (SRV_DOS_STATUS | ERROR_INVALID_ACCESS)
|
||
|
||
//
|
||
// SMB SERVER-class error codes that lack an NT or OS/2 equivalent.
|
||
//
|
||
|
||
#define STATUS_INVALID_SMB (SRV_SERVER_STATUS | SMB_ERR_ERROR)
|
||
#define STATUS_SMB_BAD_NET_NAME (SRV_SERVER_STATUS | SMB_ERR_BAD_NET_NAME)
|
||
#define STATUS_SMB_BAD_TID (SRV_SERVER_STATUS | SMB_ERR_BAD_TID)
|
||
#define STATUS_SMB_BAD_UID (SRV_SERVER_STATUS | SMB_ERR_BAD_UID)
|
||
#define STATUS_SMB_TOO_MANY_UIDS (SRV_SERVER_STATUS | SMB_ERR_TOO_MANY_UIDS)
|
||
#define STATUS_SMB_USE_MPX (SRV_SERVER_STATUS | SMB_ERR_USE_MPX)
|
||
#define STATUS_SMB_USE_STANDARD (SRV_SERVER_STATUS | SMB_ERR_USE_STANDARD)
|
||
#define STATUS_SMB_CONTINUE_MPX (SRV_SERVER_STATUS | SMB_ERR_CONTINUE_MPX)
|
||
#define STATUS_SMB_BAD_COMMAND (SRV_SERVER_STATUS | SMB_ERR_BAD_COMMAND)
|
||
#define STATUS_SMB_NO_SUPPORT (SRV_SERVER_STATUS | SMB_ERR_NO_SUPPORT_INTERNAL)
|
||
|
||
// *** because SMB_ERR_NO_SUPPORT uses 16 bits, but we have only 12 bits
|
||
// available for error codes, it must be special-cased in the code.
|
||
|
||
//
|
||
// SMB HARDWARE-class error codes that lack an NT or OS/2 equivalent.
|
||
//
|
||
|
||
#define STATUS_SMB_DATA (SRV_HARDWARE_STATUS | SMB_ERR_DATA)
|
||
|
||
//
|
||
// OS/2 error codes that lack an NT or SMB equivalent.
|
||
//
|
||
|
||
#include <winerror.h>
|
||
|
||
#define STATUS_OS2_INVALID_LEVEL \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_INVALID_LEVEL)
|
||
|
||
#define STATUS_OS2_EA_LIST_INCONSISTENT \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_EA_LIST_INCONSISTENT)
|
||
|
||
#define STATUS_OS2_NEGATIVE_SEEK \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_NEGATIVE_SEEK)
|
||
|
||
#define STATUS_OS2_NO_MORE_SIDS \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_NO_MORE_SEARCH_HANDLES)
|
||
|
||
#define STATUS_OS2_EAS_DIDNT_FIT \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_EAS_DIDNT_FIT)
|
||
|
||
#define STATUS_OS2_EA_ACCESS_DENIED \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_EA_ACCESS_DENIED)
|
||
|
||
#define STATUS_OS2_CANCEL_VIOLATION \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_CANCEL_VIOLATION)
|
||
|
||
#define STATUS_OS2_ATOMIC_LOCKS_NOT_SUPPORTED \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_ATOMIC_LOCKS_NOT_SUPPORTED)
|
||
|
||
#define STATUS_OS2_CANNOT_COPY \
|
||
(NTSTATUS)(SRV_OS2_STATUS | ERROR_CANNOT_COPY)
|
||
|
||
#endif // ndef _STATUS_
|
||
|