共用方式為


2.2.4.16.2 Response

 SMB_Parameters
   {
   UCHAR WordCount;
   Words
     {
     USHORT FID;
     }
   }
 SMB_Data
   {
   USHORT 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

...

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 subsequent requests that manipulate the file.

SMB_Data (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

ByteCount

ByteCount (2 bytes): This field MUST be 0x0000. No data is sent by this message.

Error Codes

SMB error class

SMB error code

NT status code

POSIX equivalent

Description

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_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 file OR open mode failure.

ERRDOS

(0x01)

ERRnomem

(0x0008)

STATUS_INSUFF_SERVER_RESOURCES

(0xC0000205)

ENOMEM

The server is out of resources.

ERRDOS

(0x01)

ERRfilexists

(0x0050)

STATUS_OBJECT_NAME_COLLISION

(0xC0000035)

EEXIST

The specified file already exists.

ERRSRV

(0x02)

ERRerror

(0x0001)

STATUS_INVALID_SMB

(0x00010002)

Invalid SMB. Not enough parameter bytes were 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)

ERRerror

(0x0001)

STATUS_ACCESS_DENIED

(0xC0000022)

EROFS

Named file resides on read-only file system and requested access permission is write or read/write.

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.