共用方式為


2.2.4.15.2 Response

The response format is different from the original Core Protocol. For the original response format, refer to [SNIA] or [XOPEN-SMB].

 SMB_Parameters
   {
   UCHAR WordCount;
   Words
     {
     USHORT FID;
     }
   }
 SMB_Data
   {
   USHORT ByteCount;
   Bytes
     {
       UCHAR TemporaryFileName[ByteCount];
     }
   }


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

SMB_Parameters

SMB_Data (variable)

...

SMB_Parameters (3 bytes):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

WordCount

Words

WordCount (1 byte): This field MUST be 0x01.

Words (2 bytes):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

FID

FID (2 bytes): The FID representing the file on the server. This value MUST be supplied in the FID field of the SMB Header (section 2.2.3.1) in subsequent requests that manipulate the file.

SMB_Data (variable):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

ByteCount

Bytes (variable)

...

ByteCount (2 bytes): This field MUST be greater than or equal to 0x0002.

Bytes (variable):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

TemporaryFileName (variable)

...

TemporaryFileName (variable): A null-terminated string that contains the temporary file name generated by the server.<29> The string SHOULD be a null-terminated array of ASCII characters.

Error Codes

SMB error class

SMB error code

NT status code

POSIX equivalent

Description

ERRDOS

(0x01)

ERRbadfile

(0x0002)

STATUS_NO_SUCH_FILE

(0xC000000F)

ENOENT

The named directory was not found.

ERRDOS

(0x01)

ERRbadpath

(0x0003)

STATUS_OBJECT_PATH_SYNTAX_BAD

(0xC000003B)

ENOENT

The file path syntax is invalid.

ERRDOS

(0x01)

ERRbadpath

(0x0003)

STATUS_OBJECT_PATH_INVALID

(0xC0000039)

ENOTDIR

A component of the path-prefix was not a directory.

ERRDOS

(0x01)

ERRnofids

(0x0004)

STATUS_OS2_TOO_MANY_OPEN_FILES

(0x00040001)

STATUS_TOO_MANY_OPENED_FILES

(0xC000011F)

EMFILE

Too many open files. No more FIDs available.

ERRDOS

(0x01)

ERRnoaccess

(0x0005)

STATUS_ACCESS_DENIED

(0xC0000022)

EACCESS

A component of the path-prefix denied search permission OR requested access permission is denied for the directory.

ERRDOS

(0x01)

ERRnomem

(0x0008)

STATUS_INSUFF_SERVER_RESOURCES

(0xC0000205) DOS

ENOMEM

The server is out of resources.

ERRDOS

(0x01)

ERRinvalidname

(0x007B)

STATUS_OBJECT_NAME_COLLISION

(0xC00000BA)

Temporary file could not be created because a unique name could not be generated.

ERRSRV

(0x02)

ERRerror

(0x0001)

STATUS_INVALID_SMB

(0x00010002)

Invalid SMB. The wrong number of parameter bytes was sent.

ERRSRV

(0x02)

ERRerror

(0x0001)

EFAULT

Path points outside the allocated address space of the process.

ERRSRV

(0x02)

ERRerror

(0x0001)

EINTR

A signal was caught during the open operation.

ERRSRV

(0x02)

ERRerror

(0x0001)

ENXIO

Generic server open failure.

ERRSRV

(0x02)

ERRaccess

(0x0004)

STATUS_NETWORK_ACCESS_DENIED

(0xC00000CA)

Permission conflict between requested permission and permissions for the shared resource: for example, open for write of a file in a read-only file system subtree.

ERRSRV

(0x02)

ERRinvtid

(0x0005)

STATUS_SMB_BAD_TID

(0x00050002)

The TID is no longer valid.

ERRSRV

(0x02)

ERRinvdevice

(0x0007)

STATUS_BAD_DEVICE_TYPE

(0xC00000CB)

File creation request made to a share that is not a file system subtree.

ERRSRV

(0x02)

ERRbaduid

(0x005B)

STATUS_SMB_BAD_UID

(0X005B0002)

The UID supplied is not defined for the session, or the user identified by the UID does not have sufficient privileges.

ERRHRD

(0x03)

ERRnowrite

(0x0013)

STATUS_MEDIA_WRITE_PROTECTED

(0xC00000A2)

EROFS

Attempt to write to a read-only file system.

ERRHRD

(0x03)

ERRdata

(0x0017)

STATUS_DATA_ERROR

(0xC000003E)

EIO

Disk I/O error.