2.2.4.20.2 Response
-
SMB_Parameters { UCHAR WordCount; Words { USHORT CountOfBytesReturned; USHORT Reserved[4]; } } SMB_Data { USHORT ByteCount; Bytes { UCHAR BufferType; USHORT CountOfBytesRead; UCHAR Bytes[CountOfBytesRead]; } }
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SMB_Parameters |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
SMB_Data (variable) |
||||||||||||||||||||||||||||||
... |
SMB_Parameters (11 bytes):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1WordCount
Words
...
...
-
WordCount (1 byte): This field MUST be 0x05.
-
Words (10 bytes):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1CountOfBytesReturned
Reserved
...
...
-
CountOfBytesReturned (2 bytes): The actual number of bytes returned to the client. This MUST be equal to CountOfBytesToRead unless the end of file was reached before reading CountOfBytesToRead bytes or the ReadOffsetInBytes pointed at or beyond the end of file.
-
Reserved (8 bytes): Reserved. All bytes MUST be 0x00.
-
SMB_Data (variable):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1ByteCount
Bytes (variable)
...
-
ByteCount (2 bytes): This field MUST be 0x0003 + CountOfBytesRead.
-
Bytes (variable):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1BufferType
CountOfBytesRead
Bytes (variable)
...
-
BufferType (1 byte): This field MUST be 0x01.
-
CountOfBytesRead (2 bytes): The number of bytes read that are contained in the following array of bytes.
-
Bytes (variable): The array of bytes read from the file. The array is not null-terminated.
-
Error Codes
SMB error class |
SMB error code |
NT status code |
POSIX equivalent |
Description |
---|---|---|---|---|
ERRDOS (0x01) |
ERRnoaccess (0x0001) |
STATUS_INVALID_DEVICE_REQUEST (0xC0000010) |
EINVAL |
Attempt to lock a non-regular file such as a named pipe. |
ERRDOS (0x01) |
ERRnoaccess (0x0005) |
STATUS_ACCESS_DENIED (0xC0000022) |
EACCESS |
File access rights do not match requested locks. |
ERRDOS (0x01) |
ERRnoaccess (0x0005) |
STATUS_ALREADY_COMMITTED (0xC0000021) |
ENOLCK |
Attempt to read from a portion of the file that the server determines has been locked or has been opened in deny-read mode. |
ERRDOS (0x01) |
ERRbadfid (0x0006) |
STATUS_INVALID_HANDLE (0xC0000008) STATUS_SMB_BAD_FID (0x00060001) |
ENFILE |
Attempt to read from a FID that the server does not have open. |
ERRDOS (0x01) |
ERRnomem (0x0008) |
STATUS_INSUFF_SERVER_RESOURCES (0xC0000205) |
ENOMEM |
The server is out of resources. |
ERRDOS (0x01) |
ERRbadaccess (0x000C) |
STATUS_ACCESS_DENIED (0xC0000022) |
|
Read permission required. |
ERRDOS (0x01) |
ERRlock (0x0021) |
STATUS_FILE_LOCK_CONFLICT (0xC0000054) |
EACCESS |
The intended byte range has already been locked. |
ERRDOS (0x01) |
ERRlock (0x0021) |
STATUS_FILE_LOCK_CONFLICT (0xC0000054) STATUS_LOCK_NOT_GRANTED (0xC0000055) |
EAGAIN |
The requested byte range was already locked by a different process (PID). |
ERRDOS (0x01) |
ERReof (0x0026) |
STATUS_END_OF_FILE (0xC0000011) |
|
Attempted to read beyond the end of the file. |
ERRSRV (0x02) |
ERRerror (0x0001) |
STATUS_INVALID_SMB (0x00010002) |
|
A corrupt or invalid request has been encountered. |
ERRSRV (0x02) |
ERRerror (0x0001) |
|
EBADF |
A valid FID was rejected by the underlying system. |
ERRSRV (0x02) |
ERRerror (0x0001) |
|
EDEADLK |
The lock request would block and cause a deadlock with another process. |
ERRSRV (0x02) |
ERRinvdevice (0x0007) |
STATUS_BAD_DEVICE_TYPE (0xC00000CB) |
|
Attempt to lock a non-regular file such as a named pipe. |
ERRSRV (0x02) |
ERRinvtid (0x0005) |
STATUS_SMB_BAD_TID (0x00050002) |
|
Invalid TID in request. |
ERRSRV (0x02) |
ERRbaduid (0x005B) |
STATUS_SMB_BAD_UID (0x005B0002) |
|
The UID specified is not defined as a valid ID for this session, or the user identified by the UID does not have sufficient privileges. |
ERRSRV (0x02) |
ERRmoredata (0x00EA) |
STATUS_BUFFER_OVERFLOW (0x80000005) |
|
The number of bytes read from the named pipe exceeds the requested number of bytes. The data was returned to the client in the response. |
ERRHRD (0x03) |
ERRdata (0x0017) |
STATUS_DATA_ERROR (0xC000003E) |
EIO |
A problem has occurred in the physical I/O. |
ERRHRD (0x03) |
ERRread (0x001E) |
|
ENXIO |
The device associated with the file descriptor is a block-special or character-special file and the value of the file pointer is out of range. |