/// <summary> /// Initializes a new instance of <see cref="RIOHandle" /> class. /// </summary> /// <param name="table">The reference to the table of the functions pointers.</param> public RIOHandle(ref RIO_EXTENSION_FUNCTION_TABLE table) { registerBuffer = Marshal.GetDelegateForFunctionPointer <RIORegisterBuffer>(table.RIORegisterBuffer); createCompletionQueue = Marshal.GetDelegateForFunctionPointer <RIOCreateCompletionQueue>(table.RIOCreateCompletionQueue); createRequestQueue = Marshal.GetDelegateForFunctionPointer <RIOCreateRequestQueue>(table.RIOCreateRequestQueue); notify = Marshal.GetDelegateForFunctionPointer <RIONotify>(table.RIONotify); dequeueCompletion = Marshal.GetDelegateForFunctionPointer <RIODequeueCompletion>(table.RIODequeueCompletion); receive = Marshal.GetDelegateForFunctionPointer <RIOReceive>(table.RIOReceive); send = Marshal.GetDelegateForFunctionPointer <RIOSend>(table.RIOSend); closeCompletionQueue = Marshal.GetDelegateForFunctionPointer <RIOCloseCompletionQueue>(table.RIOCloseCompletionQueue); deregisterBuffer = Marshal.GetDelegateForFunctionPointer <RIODeregisterBuffer>(table.RIODeregisterBuffer); resizeCompletionQueue = Marshal.GetDelegateForFunctionPointer <RIOResizeCompletionQueue>(table.RIOResizeCompletionQueue); resizeRequestQueue = Marshal.GetDelegateForFunctionPointer <RIOResizeRequestQueue>(table.RIOResizeRequestQueue); }
/// <summary> /// Initializes a new instance of <see cref="RIOHandle" /> class. /// </summary> /// <param name="table">The reference to the table of the functions pointers.</param> public RIOHandle(ref RIO_EXTENSION_FUNCTION_TABLE table) { registerBuffer = Marshal.GetDelegateForFunctionPointer<RIORegisterBuffer>(table.RIORegisterBuffer); createCompletionQueue = Marshal.GetDelegateForFunctionPointer<RIOCreateCompletionQueue>(table.RIOCreateCompletionQueue); createRequestQueue = Marshal.GetDelegateForFunctionPointer<RIOCreateRequestQueue>(table.RIOCreateRequestQueue); notify = Marshal.GetDelegateForFunctionPointer<RIONotify>(table.RIONotify); dequeueCompletion = Marshal.GetDelegateForFunctionPointer<RIODequeueCompletion>(table.RIODequeueCompletion); receive = Marshal.GetDelegateForFunctionPointer<RIOReceive>(table.RIOReceive); send = Marshal.GetDelegateForFunctionPointer<RIOSend>(table.RIOSend); closeCompletionQueue = Marshal.GetDelegateForFunctionPointer<RIOCloseCompletionQueue>(table.RIOCloseCompletionQueue); deregisterBuffer = Marshal.GetDelegateForFunctionPointer<RIODeregisterBuffer>(table.RIODeregisterBuffer); resizeCompletionQueue = Marshal.GetDelegateForFunctionPointer<RIOResizeCompletionQueue>(table.RIOResizeCompletionQueue); resizeRequestQueue = Marshal.GetDelegateForFunctionPointer<RIOResizeRequestQueue>(table.RIOResizeRequestQueue); }