3.4 Local Interface Details for RPC Client Applications

The content in this section provides a unified interface for RPC client applications that use named pipes and other local applications that similarly employ the SMB family of protocols. Because such traffic can flow over the protocols specified in [MS-CIFS] and [MS-SMB2], these interfaces are written so that the higher-layer client application is isolated from the specifics of the underlying protocol. Implementations that support such local client applications SHOULD support one or more of the interfaces defined in this section.

This section provides an abstraction for the necessary connection establishment and negotiation operations and redirects to the equivalent higher-layer events specified in [MS-CIFS] and [MS-SMB2].

To simplify this interface, a composite structure ClientGenericContext is defined to encapsulate the underlying protocol and the protocol-specific client side context. The structure has the following fields:

ClientGenericContext.ProtocolDialect: The protocol dialect associated with an open.

ClientGenericContext.ProtocolSpecificOpen: Either the protocol-specific Client.Open, as specified in section 3.2.1.5 and in [MS-SMB2] section 3.2.1.6, or the protocol-specific Client.Session, as specified in section 3.2.1.3 and in [MS-SMB2] secton 3.2.1.3.

This structure MUST be considered opaque to the caller.