throbber
EXHIBIT 1004
`
`EXHIBIT 1004
`Part 2
`
`Part 2
`
`
`
`
`
`
`
`

`
`TRANSACT2_MKDIR
`
`Extended 2.0 Protocol SMBtrans2
`
`smb_dscnt
`smb_dsoff
`smb_dsdisp
`smb_fid
`smb_bcc
`smb_data[ ]
`
`Num ber of data bytes being sent in this buffer.
`Offset from the start of an SMB header to the data bytes.
`Byte displacem ent for these data bytes.
`Value = 0xffff. No FID in this request.
`Total bytes following including pad bytes.
`Data bytes (size = smb_dscnt).
`
`Response Form at
`smb_wct
`smb_tprcnt
`smb_tdrcnt
`smb_rsvd
`smb_prcnt
`smb_proff
`smb_prdisp
`smb_bcc
`smb_param[ ]
`
`Value = 10.
`Value = 2.
`Value = 0. No data bytes.
`Reserved. Must be zero.
`Value = 2. Param eter bytes being returned.
`Offset from the start of an SMB header to the param eter bytes.
`Value = 0. Byte displacem ent for these param eter bytes.
`Total bytes following including pad bytes.
`The param eter block for the TRANSACT2_MKDIR function response is the
`m kdir-specific return inform ation in the following form at:
`Location
`Nam e
`Meaning
`smb_param[0-1] mkdir_offerror
`Offset into FEALIST data of first error
`which occurred while
`setting
`the
`extended attributes.
`
`250
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:25)(cid:27)
`
`

`
`Appendix A
`SMBTransmissionAnalysis
`
`A.1
`
`Introduction
`This appendix describes the m apping between DOS and OS/2 system calls on an SMB
`redirector, and the associated SMB requests sent from the SMB redirector to an LMX server. The
`DOS SMB redirector is assum ed to be using the core SMB protocols, and the OS/2 SMB
`redirector is assum ed to be using the LAN Manager extended SMB protocols. While an OS/2
`SMB redirector will use core SMB requests to com m unicate with a core LMX server, and a DOS
`LAN Manager client will use extended SMB requests to com m unicate with an OS/2 server, these
`situations will not be considered here.
`The m appings given here do not com pletely describe the behaviour of all SMB redirectors; they
`do not take into account various optim isations which SMB redirectors m ay do which will result
`in behaviour which differs from that described here. In particular, the extended SMB protocol
`contains a num ber of facilities which allow a redirector to im prove perform ance. These include:
`SMB chaining, opportunistic locking, caching and various specialised SMB requests, such as
`Read Block Multiplex, Write Block Multiplex, Read Block Raw and Write Block Raw. Redirectors
`which m ake use of these facilities m ay not behave exactly as described here.
`It should also be noted that the OS/2 SMB redirector and file system m ake extensive use of
`internal buffers and heuristics that m ake it difficult to determ ine an exact m apping between
`OS/2 API calls and SMB em issions. The listed API calls give an indication of which SMBs are
`sent when invoked, and where possible, an explanation is given regarding any special
`circum stances.
`DOS and OS/2 system calls which are not listed here will not norm ally result in SMB requests
`being transm itted.
`
`251
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:25)(cid:28)
`
`

`
`DOS Functions
`
`SMB Transmission Analysis
`
`A.2
`
`DOS Functions
`Function Num ber DOS Function
`0x00
`Term inate Program m e
`0x05
`Print Character
`0x0d
`Reset Disk
`0x0f
`Open File (FCB I/O)
`0x10
`Close File (FCB I/O)
`0x11
`Search For First Entry
`0x12
`Search For Next Entry
`0x13
`Delete File (FCB I/O)
`0x14
`Sequential Read (FCB I/O)
`0x15
`Sequential Write (FCB I/O)
`0x16
`Create File (FCB I/O)
`0x17
`Renam e File (FCB I/O)
`0x1b
`Get Default Drive Data
`0x1c
`Get Drive Data
`0x21
`Random Read (FCB I/O)
`0x22
`Random Write (FCB I/O)
`0x23
`Get File Size (FCB I/O)
`0x27
`Random Block Read (FCB I/O)
`0x28
`Random Block Write (FCB I/O)
`0x36
`Get Disk Free Space
`0x39
`Create Directory
`0x3a
`Rem ove Directory
`0x3b
`Change Current Directory
`0x3c
`Create File Handle
`0x3d
`Open File Handle
`0x3e
`Close File Handle
`0x3f
`Read Via File Handle
`0x40
`Write Via File Handle
`0x41
`Delete Directory Entry
`0x42
`Move File Pointer
`0x43
`Set/Get File Attributes
`0x4b
`Load and Execute Program m e/Load Overlay
`0x4c
`End Process
`0x4e
`Find First File
`0x4f
`Find Next File
`0x56
`Change Directory Entry
`0x57
`Set/Get Date/Tim e of File
`0x5a
`Create Tem porary File Handle
`0x5b
`Create New File
`0x5c
`Unlock/Lock File
`0x5f
`Get Assign List Entry
`0x68
`Flush Buffer
`
`252
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:19)
`
`

`
`SMB Transmission Analysis
`
`DOS Functions
`
`Change Current Directory
`Functionnumber
`0x3b.
`SMBsent
`SMBchkpth.
`Reason
`Change directory.
`
`Change Directory Entry
`Functionnumber
`0x56.
`SMBsent
`SMBmv.
`Reason
`Renam e file.
`
`Close File (FCB I/O)
`Functionnumber
`SMBsent
`Reason
`
`0x10.
`SMBclose.
`Close file (FCB I/O).
`
`Close File Handle
`Functionnumber
`SMBsent
`Reason
`
`Create Directory
`Functionnumber
`SMBsent
`Reason
`
`0x3e.
`SMBclose, SMBsplclose(printer device).
`Close file.
`
`0x39.
`SMBmkdir.
`Make directory.
`
`Create File (FCB I/O)
`Functionnumber
`SMBsent
`Reason
`
`0x16.
`SMBcreate.
`Create file.
`
`Create File Handle
`Functionnumber
`SMBsent
`Reason
`
`0x3c.
`SMBcreate.
`Create file.
`
`253
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:20)
`
`

`
`DOS Functions
`
`SMB Transmission Analysis
`
`Create New File
`Functionnumber
`SMBsent
`Reason
`
`0x5b.
`SMBmknew.
`Create file.
`
`Delete Directory Entry
`Functionnumber
`0x41.
`SMBsent
`SMBunlink.
`Reason
`Delete file.
`
`Delete File (FCB I/O)
`Functionnumber
`SMBsent
`Reason
`
`0x13.
`SMBunlink.
`Delete file (FCB I/O).
`
`End Process
`Functionnumber
`SMBsent
`Reason
`
`Find First File
`Functionnumber
`SMBsent
`Reason
`
`Find Next File
`Functionnumber
`SMBsent
`Reason
`
`Flush Buffer
`Functionnumber
`SMBsent
`Reason
`
`0x4c.
`SMBexit.
`Exit program m e.
`
`0x4e.
`SMBsearch.
`Find first m atching filenam e.
`
`0x4f.
`SMBsearch.
`Find next m atching filenam e.
`
`0x68.
`SMBflush.
`Com m it file.
`
`254
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:21)
`
`

`
`SMB Transmission Analysis
`
`DOS Functions
`
`Get Assign List Entry
`Functionnumber
`SMBsent
`Reason
`
`0x5f.
`SMBtcon, SMBtdis.
`Redirect device, cancel redirection.
`
`Get Default Drive Data
`Functionnumber
`0x1b.
`SMBsent
`SMBdskattr.
`Reason
`Get data on the default drive.
`
`Get Disk Free Space
`Functionnumber
`SMBsent
`Reason
`
`Get Drive data
`Functionnumber
`SMBsent
`Reason
`
`0x36.
`SMBdskattr.
`Get free space on disk.
`
`0x1c.
`SMBdskattr.
`Get data on a drive.
`
`Get File Size (FCB I/O)
`Functionnumber
`0x23.
`SMBsent
`SMBsearch.
`Reason
`File size in records.
`
`Load and Execute Program m e/Load Overlay
`Functionnumber
`0x4b.
`SMBsent
`SMBopen, SMBread, SMBclose.
`Reason
`Load/execute program m e.
`
`Move File Pointer
`Functionnumber
`SMBsent
`Reason
`
`0x42.
`SMBlseek.
`Set position in file.
`
`255
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:22)
`
`

`
`DOS Functions
`
`SMB Transmission Analysis
`
`Open File (FCB I/O)
`Functionnumber
`SMBsent
`Reason
`
`Open File Handle
`Functionnumber
`SMBsent
`Reason
`
`Print Character
`Functionnumber
`SMBsent
`Reason
`
`0x0f.
`SMBopen(read/write/share set to 0xff).
`Open file (FCB I/O).
`
`0x3d.
`SMBopen, SMBsplopen(printer device).
`Open file.
`
`0x05.
`SMBsplopen, SMBsplwr, SMBsplclose.
`Printer output.
`
`Random Block Read (FCB I/O)
`Functionnumber
`0x27.
`SMBsent
`SMBread.
`Reason
`Random block read (FCB I/O).
`
`Random Block Write (FCB I/O)
`Functionnumber
`0x28.
`SMBsent
`SMBwrite.
`Reason
`Random block write (FCB I/O).
`
`Random Read (FCB I/O)
`Functionnumber
`0x21.
`SMBsent
`SMBread.
`Reason
`Random read (FCB I/O).
`
`Random Write (FCB I/O)
`Functionnumber
`0x22.
`SMBsent
`SMBwrite.
`Reason
`Random write.
`
`256
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:23)
`
`

`
`SMB Transmission Analysis
`
`DOS Functions
`
`Read Via File Handle
`Functionnumber
`SMBsent
`Reason
`
`0x3f.
`SMBread.
`Read file.
`
`Rem ove Directory
`Functionnumber
`SMBsent
`Reason
`
`0x3a.
`SMBrmdir.
`Rem ove directory.
`
`Renam e File (FCB I/O)
`Functionnumber
`0x17.
`SMBsent
`SMBmv.
`Reason
`Renam e file.
`
`Reset Disk
`Functionnumber
`SMBsent
`Reason
`
`Search For First Entry
`Functionnumber
`SMBsent
`Reason
`
`Search For Next Entry
`Functionnumber
`SMBsent
`Reason
`
`0x0d.
`SMBflush.
`Disk reset (flush file buffers).
`
`0x11.
`SMBsearch.
`Search first m atching entry.
`
`0x12.
`SMBsearch.
`Search next m atching entry.
`
`Sequential Read (FCB I/O)
`Functionnumber
`0x14.
`SMBsent
`SMBread.
`Reason
`Sequential read (FCB I/O).
`
`257
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:24)
`
`

`
`DOS Functions
`
`SMB Transmission Analysis
`
`Sequential Write (FCB I/O)
`Functionnumber
`0x15.
`SMBsent
`SMBwrite.
`Reason
`Sequential write (FCB I/O).
`
`Set/Get Date/Tim e of File
`Functionnumber
`0x57.
`SMBsent
`SMBsearch, SMBsetatr.
`Reason
`Get/set file date and tim e.
`
`Set/Get File Attributes
`Functionnumber
`0x43.
`SMBsent
`SMBsetatr.
`Reason
`Change file attributes.
`
`Term inate Program m e
`Functionnumber
`SMBsent
`Reason
`
`0x00.
`SMBexit.
`Program m e term inate.
`
`Unlock/Lock File
`Functionnumber
`SMBsent
`Reason
`
`Write Via File Handle
`Functionnumber
`SMBsent
`Reason
`
`0x5c.
`SMBlock, SMBunlock.
`Lock/Unlock file.
`
`0x40.
`SMBwrite, SMBsplwr(printer device).
`Write file.
`
`258
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:25)
`
`

`
`SMB Transmission Analysis
`
`OS/2 Functions
`
`A.3 OS/2 Functions
`The SMB requests generated from OS/2 redirectors will vary based on the protocol dialect
`negotiated. This variation is highlighted in the sequences below by listing the SMB request that
`will be sent if the extended 1.0 dialect was negotiated first followed by the SMB request for the
`extended 2.0 dialect.
`
`DosBufReset
`SMBsent
`Reason
`
`DosChDir
`SMBsent
`Reason
`
`DosClose
`SMBsent
`Reason
`
`DosDelete
`SMBsent
`Reason
`
`DosDevIOCtl
`SMBsent
`Reason
`
`DosExecPgm
`SMB sent
`
`Reason
`
`DosFileLocks
`SMBsent
`Reason
`
`SMBflush.
`Flush file buffer.
`
`SMBchkpth.
`Change the current working directory.
`
`SMBclose, SMBwriteclose, SMBwrite.
`Close FID.
`If the file I/O is buffered, a DosClose will cause the data in the buffers to
`be flushed. This type of situation m ay cause an SMBwriteclose or
`SMBwriteto be sent.
`
`SMBunlink.
`Delete a file.
`
`SMBioctl, SMBioctls.
`Pass a device-specific I/O control request to a driver.
`
`SMBopen, SMBread, SMBclose. SMBtrans2(TRANSACT2_OPEN) m ay be
`used for the open function instead of SMBopen for the extended 2.0
`dialect.
`Start a program m e as a child process.
`DosExecPgmm akes use of OS/2’s standard file I/O functions.
`
`SMBlockSMBlockingX, SMBlockread, SMBunlock, SMBwriteunlock.
`Set or reset a byte lock range in an open file.
`An SMBwriteunlock is sent after unlocking bytes which were just written
`out. SMBlockreadis used to lock and then read ahead.
`
`259
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:26)
`
`

`
`OS/2 Functions
`
`SMB Transmission Analysis
`
`DosFindClose
`SMBsent
`Reason
`
`DosFindFirst
`SMBsent
`Reason
`
`DosFindFirst2
`SMBsent
`Reason
`
`DosFindNext
`SMBsent
`Reason
`
`SMBfcloseand possibly SMBfindnclose.
`If change notification was
`Close an active directory search handle.
`involved, the SMBfindnclosewill be sent to cancel further notifications.
`
`SMBffirstor SMBtrans2(TRANSACT2_FINDFIRST).
`Find the first file in a directory m atching the search pattern.
`
`SMBtrans2(TRANSACT2_FINDFIRST). An SMBfindclosem ay follow.
`If no
`Find the first file in a directory m atching the search pattern.
`additional searchs are desired the SMBfindclose will be used to allow the
`server to free resources associated with the find.
`
`SMBffirstor SMBtrans2(TRANSACT2_FINDNEXT).
`Get the next file from the search pattern.
`If this function is used on a sufficiently large directory it will eventually
`send an SMBfindrequest.
`
`DosFindNotifyClose
`SMBsent
`Reason
`
`SMBfindnclose.
`To indicate to the LMX server that directory search requests are com plete.
`
`DosMkDir
`SMBsent
`Reason
`
`DosMove
`SMBsent
`Reason
`
`DosOpen
`SMB sent
`
`Reason
`
`SMBmkdirSMBtrans2(TRANSACT2_MKDIR).
`Create a new directory.
`
`SMBmv.
`Renam e or m ove a file.
`
`SMBopenX, SMBopen, SMBcreate, SMBreadXor
`SMBtrans2(TRANSACT2_OPEN).
`Open a device/file for I/O.
`DosOpen m ay send an SMBreadX read ahead. DosOpen will send an
`SMBopenX instead of an SMBopenwhen in protected m ode. SMBopenhas
`no capabilities for creating a file when opening, so DosOpen m ay send an
`SMBcreate.
`
`260
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:27)
`
`

`
`SMB Transmission Analysis
`
`OS/2 Functions
`
`DosQCurDir
`SMBsent
`Reason
`
`DosQFSInfo
`SMBsent
`Reason
`
`DosQFileInfo
`SMBsent
`Reason
`
`DosQFileMode
`SMBsent
`Reason
`
`DosRead
`SMBsent
`Reason
`
`DosReadAsync
`SMBsent
`Reason
`
`DosRm Dir
`SMBsent
`Reason
`
`DosSetFileInfo
`SMBsent
`Reason
`
`SMBchkpth.
`Determ ine the current directory of a logical drive.
`
`SMBdskattror SMBtrans2(TRANSACT2_QFSINFO).
`Retrieve file system inform ation data.
`
`SMBgetattrEor SMBtrans2(TRANSACT2_QFILEINFO).
`Retrieve a file inform ation record.
`
`SMBgetatr.
`Get a file’s attribute byte.
`
`SMBread, SMBreadX, SMBreadbraw, SMBreadbmpx.
`Read characters from an FID.
`SMBreadbrawis used to send a block of data which is larger than the data
`size which was negotiated.
`
`SMBread, SMBreadX, SMBreadbraw, SMBreadbmpx.
`Read characters from an FID asynchronously.
`Sam e behaviour as DosRead.
`
`SMBrmdir.
`Delete a subdirectory.
`
`SMBsetattrE.
`Change a file’s directory inform ation.
`
`261
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:26)(cid:28)
`
`

`
`OS/2 Functions
`
`SMB Transmission Analysis
`
`DosSetFileMode
`SMBsent
`Reason
`
`DosWrite
`SMB sent
`Reason
`
`DosWriteAsync
`SMB sent
`Reason
`
`SMBsetatr.
`Change a file’s attribute.
`
`SMBwrite, SMBwriteX, SMBwritebraw, SMBwritebmpx.
`Write characters to an FID.
`SMBwritebrawis used to send a block of data which is larger than the data
`size which was negotiated.
`
`SMBwrite, SMBwriteX, SMBwritebraw, SMBwritebmpx.
`Write characters to an FID asynchronously.
`Sam e behaviour as DosWrite.
`
`262
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:19)
`
`

`
`Appendix B
`LANManagerRemoteAdministrationProtocol
`
`B.1
`
`Overview
`This section describes the m echanism used by LAN Manager
`rem ote
`to im plem ent
`adm inistration functions and access control lists. The protocols described here are those which
`are provided by the extended dialects. They are included here so that an im plem entor can build
`an LMX server which can handle this class of SMB redirector requests. However, their inclusion
`in this specification does not im ply any X/Open endorsem ent of these m echanism s as the basis
`for future X/Open network m anagem ent functionality.
`All adm inistrative functions in the LAN Manager are provided by a set of shared library
`routines, often referred to as LAN Manager API routines. Many of these routines have a
`servernam e argum ent which the caller uses to distinguish a local adm inistrative operation (one
`which applies to the LMX server on the local m achine) from a rem ote operation (one which
`applies to the server on another m achine).
`In the case of a rem ote operation the SMB redirector packages up its argum ents, and sends them
`to the appropriate LMX server. The LMX server then calls the corresponding LAN Manager API
`routine locally, packages the results, and sends them back to the SMB redirector. The
`m echanism resem bles a specialised, private, rem ote procedure call facility between the SMB
`redirector and the LMX server.
`
`263
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:20)
`
`

`
`Remote API Protocol
`
`LAN Manager Remote Administration Protocol
`
`B.2
`
`Rem ote API Protocol
`1. All rem ote API operations are done using the share nam e IPC$. The SMB redirector will
`autom atically connect to that share if necessary in order to do a rem ote API call.
`2. All rem ote API operations are done using the Transaction SMB SMBtrans.
`3. The smb_name field of the Transaction SMB is always \PIPE\LANMAN. The server uses
`this to identify a rem ote API request. The SMB resem bles a norm al nam ed pipe operation,
`which is also done using a Transaction SMB. However, the smb_setup[0] field, which
`would norm ally contain the desired nam ed pipe operation,
`ignored;
`is
`the
`\PIPE\LANMAN nam e field is sufficient to identify a rem ote API operation.
`The argum ents for the rem ote API call are encapsulated in the Transaction request SMB; return
`values are encapsulated in the Transaction response SMB. In both the request and the response,
`all binary values are stored in little-endian order, least significant byte first. There are no pad
`bytes other than those explicitly specified in descriptor strings; therefore, item s m ay be located
`at an arbitrary byte boundary - there are no alignm ent restrictions.
`The request and response Transaction SMBs contain a param eter section and a data section. The
`argum ents for a rem ote API call are split into two parts, and placed in these sections of the
`request Transaction. The Transaction response m essage contains the results of the call, split
`between the param eter and data sections of the Transaction response. A num ber of fields in the
`Transaction SMB identify the size and location of these sections within the SMB, and also allow a
`single Transaction request or response to be split into several m essages (refer to X/Open CAE
`Specification, IPC Mechanism s for SMB).
`
`264
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:21)
`
`

`
`LAN Manager Remote Administration Protocol
`
`LMX Access Control Lists Mapping
`
`B.3
`
`LMX Access Control Lists Mapping
`Access control lists (ACLs) are used by LMX servers running in user-level security m ode.
`Though the im plem entation of ACLs is outside the scope of the specification the following list is
`a set of possible access perm issions, which is used by LAN Manager im plem entations.
`User-level security allows access perm issions to be set for each shared resource (for exam ple, file
`system subtree, individual file, spooler, device, etc.). Each shared resource has a list of users and
`groups, with the perm issions allowed for each user or group on that resource.
`
`ACL Perm issions
`R
`read
`
`W write
`X
`execute
`C
`create
`
`D delete
`A
`change attributes
`
`P
`
`change perm issions
`
`N deny access
`Y
`allow spool requests
`
`Perm ission to read data from a resource and, by
`default, execute the resource.
`Perm ission to write data to the resource.
`Perm ission to execute the resource.
`Perm ission to create an instance of the resource
`(for exam ple, a file); data can be written to the
`resource when creating it.
`Perm ission to delete the resource.
`Perm ission to m odify the resource’s attributes
`(for exam ple, the date and tim e a file was last
`m odified).
`Perm ission to m odify the perm issions (read,
`write, create, execute and delete) assigned to a
`resource for a user, group or application.
`No perm issions.
`
`Since the X/Open CAE does not provide an access control list (ACL) m echanism, the usual CAE
`access control m echanism s should be used instead. Following the principle of least surprise, a
`m apping is defined for access m echanism s which cannot easily be provided under CAE system s.
`The CAE access control m echanism s are used to perm it interoperability for applications which
`reside on both PCs and on CAE hosts.
`A m apping from (SMB) UID and usernam e/password supplied by the client to CAE User ID
`(uid) and Group ID(s) (gid) is established by the SMBsesssetupX and will be m aintained by the
`LMX server. The m apped-to CAE User ID and one or m ore Group IDs are used for all accesses
`on the CAE system in the usual m anner.
`The differences between the functionality provided by ACLs and the access control m echanism s
`for LMX servers described above include:
`1. ACL perm issions apply to shared resources. This includes file system directories as well as
`individual files. CAE perm issions apply to individual files and directories but are not
`extended to subtrees.
`2. For each resource, ACL perm issions can be listed for any num ber of individual users, for
`any num ber of groups, and for anyone else. A CAE file or directory specifies perm issions
`for the owner, one group and everyone else.
`
`265
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:22)
`
`

`
`LMX Access Control Lists Mapping
`
`LAN Manager Remote Administration Protocol
`
`The following table shows the m apping between the ACL perm issions and CAE perm issions:
`
`SMB Perm issions
`R
`read
`W write
`X
`execute
`C
`create
`D delete
`A
`change attributes
`P
`change perm issions
`N deny access
`Y
`allow spool requests
`
`Equivalent CAE Perm ission
`r
`read
`w write
`read (Note 1)
`r
`w write on parent dir
`w write on parent dir
`not supportable
`(Note 2)
`no perm issions (Note 3)
`not supportable
`
`-
`
`Notes:
`
`1. Execute perm ission for LMX servers requires only read perm ission, as the client
`need only be able to read the file before it can execute it.
`2. Not an assignable access right. The owner of a file and users with appropriate
`privileges always have P access and cannot relinquish it; no other user can
`acquire P access.
`3. Not a specific right, but the absence of rights. Note that the privileged user
`always has all rights and can relinquish none of them.
`ACLs could be partially im plem ented for LMX servers by placing the required checks into the
`LMX server itself. The list would be used to further restrict (but not grant) access to files and
`directories beyond the restrictions im posed by the usual CAE access control m echanism s. A
`client m ay have access to a resource only if it does not conflict with CAE perm issions and if it is
`specified in the ACL. There m ay be cases where the ACL indicates that a user should have
`access, but the CAE security would have to be circum vented to honour it. The access will be
`denied in accordance with the CAE in these cases. This perm its access security to be m aintained
`on both the server and client system equivalently; if a user local on the CAE system is denied
`access, access should be denied for the user on a client system as well.
`X/Open-com pliant system im plem entations which support native ACLs as an enhancem ent
`m ay use that m echanism instead of the norm al CAE access control m echanism s if desired, as
`long as the ACLs do not grant perm ission where the expected CAE access m echanism s would
`have denied it.
`
`266
`
`X/Open CAE Specification (1992)
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:23)
`
`

`
`LAN Manager Remote Administration Protocol
`
`Transaction API Request Format
`
`B.4
`
`Transaction API Request Form at
`
`B.4.1
`
`Param eter Section
`The param eter section (smb_param) of the Transaction request contains the following:
`• API num ber: 16-bit integer
`• param eter descriptor string: null-term inated ASCII string
`• data descriptor string: null-term inated ASCII string
`• parm s: subroutine argum ents, as described by the param eter descriptor string
`• auxiliary data descriptor string: optional null-term inated ASCII string
`The API num ber identifies which API routine the SMB redirector wishes the LMX server to call
`on its behalf. A list of API num bers is given in Section B.8 on page 275.
`The param eter descriptor string describes the types of the argum ents in the data section
`(smb_data), as given in the original call to the routine on the SMB redirector.
`The data descriptor string describes the form at of a data structure, or data buffer, which is sent
`to the API routine. The API routine on the SMB redirector is norm ally given a pointer to this
`buffer. Note that this descriptor string is also used by the server to determ ine the form at of the
`data buffer to be sent back from the API call.
`The parm s field contains the actual subroutine argum ents, as described by the param eter
`descriptor string.
`The auxiliary data descriptor string describes the form at of a second, auxiliary data structure
`which is either sent to or received from the API routine, in addition to that defined by the data
`descriptor string. The data described by this descriptor string is located in the data section
`(smb_data) of SMBtrans,
`im m ediately following the data described by the prim ary data
`descriptor.
`
`B.4.2 Data Section
`The data section (smb_data) of the SMBtransrequest contains the following:
`• the prim ary data buffer, as described by the data descriptor string in the param eter section
`• the auxiliary data buffer (optional), as described by the auxiliary data descriptor in the
`param eter section
`
`267
`Protocols for X/Open PC Interworking: SMB, Version 2
`(cid:51)(cid:72)(cid:87)(cid:76)(cid:87)(cid:76)(cid:82)(cid:81)(cid:72)(cid:85)(cid:3)(cid:57)(cid:82)(cid:81)(cid:68)(cid:74)(cid:72)(cid:3)(cid:43)(cid:82)(cid:79)(cid:71)(cid:76)(cid:81)(cid:74)(cid:86)(cid:3)(cid:38)(cid:82)(cid:85)(cid:83)(cid:17)(cid:3)(cid:72)(cid:87)(cid:3)(cid:68)(cid:79)(cid:17)(cid:3)(cid:16)(cid:3)(cid:40)(cid:91)(cid:75)(cid:76)(cid:69)(cid:76)(cid:87)(cid:3)(cid:20)(cid:19)(cid:19)(cid:23)(cid:3)(cid:16)(cid:3)(cid:51)(cid:68)(cid:74)(cid:72)(cid:3)(cid:21)(cid:27)(cid:24)
`
`

`
`Transaction API Response Format
`
`LAN Manager Remote Administration Protocol
`
`B.5
`
`Transaction API Response Form at
`
`B.5.1
`
`Param eter Section
`The param eter section (smb_param) of the SMBtransr

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket