/// <summary> /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset. /// </summary> /// <param name="sesid">The session to set the parameter on.</param> /// <param name="sesparamid">The ID of the session parameter to retrieve.</param> /// <param name="operationContext">An operation context to retrieve.</param> /// <seealso cref="JET_OPERATIONCONTEXT"/> public static void JetGetSessionParameter( JET_SESID sesid, JET_sesparam sesparamid, out JET_OPERATIONCONTEXT operationContext) { Api.Check(Api.Impl.JetGetSessionParameter(sesid, sesparamid, out operationContext)); }
public void JetOperationContextToString() { var operationContext = new JET_OPERATIONCONTEXT() { UserID = 2, OperationID = 3, OperationType = 4, ClientType = 5, Flags = 6, }; Assert.AreEqual("JET_OPERATIONCONTEXT(2:3:4:5:0x06)", operationContext.ToString()); }
public void Setup() { this.native = new NATIVE_OPERATIONCONTEXT() { ulUserID = Any.Int32, nOperationID = Any.Byte, nOperationType = Any.Byte, nClientType = Any.Byte, fFlags = Any.Byte, }; this.managed = new JET_OPERATIONCONTEXT(ref this.native); this.reconstituted = this.managed.GetNativeOperationContext(); }
public void VerifyWindows10GetOperationContextIsEmpty() { if (!EsentVersion.SupportsWindows10Features) { return; } using (var session = new Session(this.instance)) { JET_OPERATIONCONTEXT operationcontext = session.GetOperationContext(); Assert.AreEqual(int.MinValue, operationcontext.UserID); Assert.AreEqual(0, operationcontext.OperationID); Assert.AreEqual(0, operationcontext.OperationType); Assert.AreEqual(0, operationcontext.ClientType); Assert.AreEqual(0, operationcontext.Flags); } }
/// <summary> /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset. /// </summary> /// <param name="sesid">The session to set the parameter on.</param> /// <param name="sesparamid">The ID of the session parameter to set.</param> /// <param name="operationContext">An operation context to set.</param> /// <returns>An error code.</returns> public int JetSetSessionParameter( JET_SESID sesid, JET_sesparam sesparamid, JET_OPERATIONCONTEXT operationContext) { TraceFunctionCall("JetSetSessionParameter"); this.CheckSupportsWindows10Features("JetSetSessionParameter"); int err; NATIVE_OPERATIONCONTEXT nativeContext = operationContext.GetNativeOperationContext(); int dataSize = Marshal.SizeOf(nativeContext); err = NativeMethods.JetSetSessionParameter( sesid.Value, (uint)sesparamid, ref nativeContext, checked ((int)dataSize)); return(Err(err)); }
public void VerifyJetOperationContextEquality() { var x = new JET_OPERATIONCONTEXT { UserID = 1, OperationID = 2, OperationType = 3, ClientType = 4, Flags = 5, }; var y = new JET_OPERATIONCONTEXT { UserID = 1, OperationID = 2, OperationType = 3, ClientType = 4, Flags = 5, }; TestEquals(x, y); }
public void VerifyWindows10GetOperationContextAndSetOperationContext() { if (!EsentVersion.SupportsWindows10Features) { return; } using (var session = new Session(this.instance)) { JET_OPERATIONCONTEXT operationcontext = new JET_OPERATIONCONTEXT() { UserID = 2, OperationID = 3, OperationType = 4, ClientType = 5, Flags = 6, }; session.SetOperationContext(operationcontext); var retrieved = session.GetOperationContext(); Assert.AreEqual(operationcontext.UserID, retrieved.UserID); Assert.AreEqual(operationcontext.OperationID, retrieved.OperationID); Assert.AreEqual(operationcontext.OperationType, retrieved.OperationType); Assert.AreEqual(operationcontext.ClientType, retrieved.ClientType); Assert.AreEqual(operationcontext.Flags, retrieved.Flags); } using (var session = new Session(this.instance)) { // A new session shouldn't re-use the old value. var retrieved = session.GetOperationContext(); Assert.AreEqual(int.MinValue, retrieved.UserID); Assert.AreEqual(0, retrieved.OperationID); Assert.AreEqual(0, retrieved.OperationType); Assert.AreEqual(0, retrieved.ClientType); Assert.AreEqual(0, retrieved.Flags); } }
/// <summary> /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset. /// </summary> /// <param name="sesid">The session to set the parameter on.</param> /// <param name="sesparamid">The ID of the session parameter to set.</param> /// <param name="operationContext">An operation context to set.</param> /// <returns>An error code.</returns> public int JetGetSessionParameter( JET_SESID sesid, JET_sesparam sesparamid, out JET_OPERATIONCONTEXT operationContext) { TraceFunctionCall("JetGetSessionParameter"); this.CheckSupportsWindows10Features("JetGetSessionParameter"); int err; int actualDataSize; NATIVE_OPERATIONCONTEXT nativeContext = new NATIVE_OPERATIONCONTEXT(); int dataSize = Marshal.SizeOf(nativeContext); err = NativeMethods.JetGetSessionParameter( sesid.Value, (uint)sesparamid, out nativeContext, dataSize, out actualDataSize); if (err >= (int)JET_err.Success) { if (actualDataSize != dataSize) { throw new ArgumentException( string.Format( CultureInfo.InvariantCulture, "Bad return value. Unexpected data size returned. Expected {0}, but received {1}.", dataSize, actualDataSize), "sesparamid"); } } operationContext = new JET_OPERATIONCONTEXT(ref nativeContext); return(Err(err)); }
/// <summary> /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset. /// </summary> /// <param name="sesid">The session to set the parameter on.</param> /// <param name="sesparamid">The ID of the session parameter to set.</param> /// <param name="operationContext">An operation context to set.</param> /// <returns>An error code.</returns> public int JetGetSessionParameter( JET_SESID sesid, JET_sesparam sesparamid, out JET_OPERATIONCONTEXT operationContext) { TraceFunctionCall("JetGetSessionParameter"); this.CheckSupportsWindows10Features("JetGetSessionParameter"); int err; int actualDataSize; NATIVE_OPERATIONCONTEXT nativeContext = new NATIVE_OPERATIONCONTEXT(); int dataSize = Marshal.SizeOf(nativeContext); err = NativeMethods.JetGetSessionParameter( sesid.Value, (uint)sesparamid, out nativeContext, dataSize, out actualDataSize); if (err >= (int)JET_err.Success) { if (actualDataSize != dataSize) { throw new ArgumentException( string.Format( CultureInfo.InvariantCulture, "Bad return value. Unexpected data size returned. Expected {0}, but received {1}.", dataSize, actualDataSize), "sesparamid"); } } operationContext = new JET_OPERATIONCONTEXT(ref nativeContext); return Err(err); }
/// <summary> /// Sets a parameter on the provided session state, used for the lifetime of this session or until reset. /// </summary> /// <param name="sesid">The session to set the parameter on.</param> /// <param name="sesparamid">The ID of the session parameter to set.</param> /// <param name="operationContext">An operation context to set.</param> /// <returns>An error code.</returns> public int JetSetSessionParameter( JET_SESID sesid, JET_sesparam sesparamid, JET_OPERATIONCONTEXT operationContext) { TraceFunctionCall("JetSetSessionParameter"); this.CheckSupportsWindows10Features("JetSetSessionParameter"); int err; NATIVE_OPERATIONCONTEXT nativeContext = operationContext.GetNativeOperationContext(); int dataSize = Marshal.SizeOf(nativeContext); err = NativeMethods.JetSetSessionParameter( sesid.Value, (uint)sesparamid, ref nativeContext, checked((int)dataSize)); return Err(err); }
/// <summary> /// A client context of type <see cref="JET_OPERATIONCONTEXT"/> that the engine uses to track /// and trace operations (such as IOs). /// </summary> /// <param name="session">The <see cref="Session"/> to query.</param> /// <param name="operationcontext">The operation context to set.</param> public static void SetOperationContext( this Session session, JET_OPERATIONCONTEXT operationcontext) { Windows10Api.JetSetSessionParameter(session.JetSesid, Windows10Sesparam.OperationContext, operationcontext); }