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.