Revision History: ----------------- 1.0.0 - Initial release. 1.0.1 - Better handling of invalid read / write operations. 1.0.2 - Improved documentation and updated SMB_COM_TRANSACTION2 request (Technical Specifications Errata was found). 1.0.3 - Search handles (SID) are now properly closed. 1.0.4 - Added support for IPv6. 1.0.5 - Bugfix: SMB_COM_OPEN_ANDX was not returning the requested response format. File buffering logic logic was moved to a separate class. 1.0.6 - IOException handling when opening a file. Bugfix: Will not try to prefetch write-only streams. Bugfix: When closing a prefetched stream, close underlying stream. Bugfix: Proper handling of FILE_OPEN_REPARSE_POINT flag. Bugfix: Proper handling of Transaction2SetFileInformation requests. 1.0.7 - Improved connection buffer implementation. Improved compliance with MS-SMB when NTTransactIOCTLRequest.IsFsctl is set to false. Report STATUS_SHARING_VIOLATION instead of STATUS_FILE_LOCK_CONFLICT on IOException when deleting a file. 1.0.8 - Bugfix: Honor FILE_DELETE_ON_CLOSE flag. Bugfix: SMB_COM_SESSION_SETUP_ANDX Extended Request: NativeOS and NativeLanMan were not properly read. Improved Transaction2Subcommands implementation. Added support for GSSAPI SPNEGO tokens. API: Added SMBServer.OnLogEntry event. 1.0.9 - Improved SID / TID / FID / UID allocation mechanisms. API: More control over which users are permitted access via the guest user account if the normal authentication process fails. Improved NTLM authentication API and implementation. Added authentication related logging. Improved connected trees management logic. Remove connected user from connection state on Logoff. Bugfix: Transaction2Open2Response: Incorrect value was set as default CreationTime. 1.1.0 - Improved session management logic. Improved open-search management. Set DeletePending if FILE_DELETE_ON_CLOSE has been set. Properly handle NegotiateRequest. DerEncodingHelper: Fixed incorrect length calculation. Now Returning accept-completed at the final stage of a GSS authentication. LoginAPI: Properly handle ERROR_ACCOUNT_DISABLED. NTLM: improved compatibility with clients. Improved logging. 1.1.1 - Added MS-FSCC enums and structures required for SMB2. Added SMB2 command structures and enums. Added SMB 2.0 / 2.1 server implementation Updated UI to enable selection of SMB1.0/CIFS and/or SMB 2.0 / 2.1. Return STATUS_ACCESS_DENIED when writing to a file that was opened for reading and vice versa. SMB1: Return STATUS_NOT_IMPLEMENTED when receiving Remote Administration Protocol requests. SMB1: Return STATUS_INVALID_SMB when transaction subcommand is invalid. Return STATUS_INVALID_SMB instead of STATUS_SMB_BAD_COMMAND when usage of SMB_COM_NEGOTIATE is invalid. Return STATUS_INVALID_PARAMETER instead of STATUS_SMB_BAD_COMMAND when client tries to perform operation on mismatching share. Win32 authentication: fail authentication if AcceptSecurityContext return SEC_E_INVALID_TOKEN. DirectoryFileSystem: Updated Name property to return the name of the underlying file system. DirectoryFileSystem: Updated ValidatePath to verify that path starts with a blackslash. 1.1.2 - Improved NetBIOS name server implementation. Corrected SPNEGO implementation. SMB_COM_NT_CREATE_ANDX response: Added support for relative time (negative value) as specified in MS-CIFS. FileTimeHelper.ReadNullableFileTime: throw InvalidDataException if FILETIME is negative. Implemented additional FileInformation structures. Improved CreateFile implementation. OpenAndXHelper will now call NTFileSystemHelper.CreateFile. Corrected SMB_COM_QUERY_INFORMATION response implementation. Corrected object store related size fields from UInt64 to Int64. Removed LANMAN2.0 FileInformation structures. Rename will now return STATUS_OBJECT_NAME_COLLISION if the destination exists. Return STATUS_DIRECTORY_NOT_EMPTY when trying to delete a folder that is not empty. Return STATUS_OBJECT_PATH_INVALID when FILE_DIRECTORY_FILE is specified and a path component is not a directory. API: IFileSystem: Added exception documentation. API: FileSystemShare: Modified constructor. API: FileSystemShare: Added OnAccessRequest event that allows the subscriber to manage read / write permissions. API: INTFileStore interface was added for better separation between the object store layer and the SMB layer. 1.1.3 - Fixed InvalidCastException. NetworkAPI: Fixed compatibility with 64-bit environment and other improvements. SSPIHelper: Improved implementation. LoginAPI: Added ImpersonateLoggedOnUser method Improved NTLM authentication API. Improved Integrated Windows Authentication implementation. Corrected handling of SMB_COM_RENAME. NTFileSystemAdapter: Improved logging. API: GSS-style authentication, additional IGSSMechanism implementations can be provided. API: Added DeviceIOControl to the INTFileStore interface, relevant functionality moved to the object store layer. API: Added a SecurityContext class which will be passes to the underlying object store.