3.2.4.15 Application Requests the Session Key for a Connection
An application provides one of the following:
An Open to a file or pipe.
OR
An SMB session that identifies an authenticated connection to the server.
If an Open was supplied by the caller, then Client.Open.Session MUST be used.
If a Session is found, but Client.Session.AuthenticationState is not Valid, then an implementation-specific error MUST be returned to the caller that indicates that the session key is not available.
If a session is found and Client.Session.AuthenticationState is Valid, but Client.Session.SessionKeyState is Unavailable, then the request MUST be failed with STATUS_ACCESS_DENIED.
If a session is found, Client.Session.AuthenticationState is Valid, and Client.Session.SessionKeyState is Available, then the first 16-bytes of Client.Session.SessionKey MUST be returned to the calling application.