Index: core/bus/kernel/bus_pnp.c
===================================================================
--- core/bus/kernel/bus_pnp.c	(revision 498)
+++ core/bus/kernel/bus_pnp.c	(working copy)
@@ -596,6 +596,7 @@
 	p_ifc->sync_destroy = ib_sync_destroy;
 	p_ifc->open_ca = ib_open_ca;
 	p_ifc->query_ca = ib_query_ca;
+	p_ifc->get_dev = get_ca_dev;
 	p_ifc->close_ca = ib_close_ca;
 	p_ifc->alloc_pd = ib_alloc_pd;
 	p_ifc->dealloc_pd = ib_dealloc_pd;
Index: core/al/kernel/al_ci_ca.c
===================================================================
--- core/al/kernel/al_ci_ca.c	(revision 498)
+++ core/al/kernel/al_ci_ca.c	(working copy)
@@ -507,3 +507,14 @@
 	AL_EXIT( AL_DBG_QUERY );
 	return status;
 }
+
+
+DEVICE_OBJECT*
+get_ca_dev(
+	IN		const	ib_ca_handle_t				h_ca )
+{
+	ASSERT( h_ca );
+
+	ObReferenceObject( h_ca->obj.p_ci_ca->verbs.p_hca_dev );
+	return h_ca->obj.p_ci_ca->verbs.p_hca_dev;
+}
\ No newline at end of file
Index: core/al/al_ci_ca.h
===================================================================
--- core/al/al_ci_ca.h	(revision 498)
+++ core/al/al_ci_ca.h	(working copy)
@@ -56,6 +56,10 @@
 create_ci_ca(
 	IN				al_obj_t					*p_parent_obj,
 	IN		const	ci_interface_t*				p_ci );
+
+DEVICE_OBJECT*
+get_ca_dev(
+	IN		const	ib_ca_handle_t				h_ca );
 #endif
 
 
Index: inc/kernel/iba/ib_al_ifc.h
===================================================================
--- inc/kernel/iba/ib_al_ifc.h	(revision 498)
+++ inc/kernel/iba/ib_al_ifc.h	(working copy)
@@ -47,7 +47,7 @@
 *	IB resources provided by HCAs.
 *********/
 
-#define AL_INTERFACE_VERSION		(8)
+#define AL_INTERFACE_VERSION		(9)
 
 
 
@@ -70,6 +70,10 @@
 		OUT			ib_ca_attr_t* const			p_ca_attr OPTIONAL,
 	IN	OUT			uint32_t* const				p_size );
 
+typedef DEVICE_OBJECT*
+(*ib_pfn_get_ca_dev_t)(
+	IN		const	ib_ca_handle_t				h_ca );
+
 typedef ib_api_status_t
 (*ib_pfn_query_ca_by_guid_t)(
 	IN		const	ib_al_handle_t				h_al,
@@ -598,6 +602,7 @@
 	ib_pfn_sync_destroy_t		sync_destroy;
 	ib_pfn_open_ca_t			open_ca;
 	ib_pfn_query_ca_t			query_ca;
+	ib_pfn_get_ca_dev_t			get_dev;
 	ib_pfn_close_ca_t			close_ca;
 	ib_pfn_alloc_pd_t			alloc_pd;
 	ib_pfn_dealloc_pd_t			dealloc_pd;
