Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/complib/user/cl_nodenamemap.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/complib/user/cl_nodenamemap.c	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/complib/user/cl_nodenamemap.c	(revision 8283)
@@ -40,12 +40,16 @@
 
 #include <complib/cl_nodenamemap.h>
 
+// The maximum err length defined here: http://msdn.microsoft.com/en-us/library/51sah927(v=VS.80).aspx#2
+#define ERR_STRING_LEN 94
+
 static int map_name(void *cxt, uint64_t guid, char *p)
 {
 	cl_qmap_t *map = cxt;
 	name_map_item_t *item;
+	char * context;
 
-	p = strtok(p, "\"#");
+	p = strtok_s(p, "\"#", &context);
 	if (!p)
 		return 0;
 
@@ -62,7 +66,8 @@
 open_node_name_map(char *node_name_map)
 {
 	nn_map_t *map;
-
+	char err_string[ERR_STRING_LEN];
+	
 	if (!node_name_map) {
 #ifdef HAVE_DEFAULT_NODENAME_MAP
 		struct stat buf;
@@ -80,11 +85,15 @@
 	cl_qmap_init(map);
 
 	if (parse_node_map(node_name_map, map_name, map)) {
-		fprintf(stderr,
-			"WARNING failed to open node name map \"%s\" (%s)\n",
-			node_name_map, strerror(errno));
-			close_node_name_map(map);
-			return NULL;
+		if (!strerror_s(err_string, ERR_STRING_LEN, errno) ) {
+			fprintf(stderr,"Error: strerror_s failed\n");
+		} else {
+			fprintf(stderr,
+				"WARNING failed to open node name map \"%s\" (%s)\n",
+				node_name_map, err_string);
+		}
+		close_node_name_map(map);
+		return NULL;
 	}
 
 	return map;
@@ -147,9 +156,20 @@
 {
 	char line[256];
 	FILE *f;
+	errno_t err_no;
+	char err_string[ERR_STRING_LEN];
 
-	if (!(f = fopen(file_name, "r")))
+	if (!(err_no = fopen_s(&f, file_name, "r"))) {
+		if (!strerror_s(err_string, ERR_STRING_LEN, err_no) ) {
+			fprintf(stderr,"Error: failed to open file \"%s\" with unknown error\n",
+				file_name);
+		} else {
+			fprintf(stderr,
+				"Error: failed to open file \"%s\" with error (%s)\n",
+				file_name, err_string);
+		}
 		return -1;
+	}
 
 	while (fgets(line, sizeof(line), f)) {
 		uint64_t guid;
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_port_mgr.c	(revision 8283)
@@ -2040,7 +2040,7 @@
 	return STATUS_SUCCESS;
 }
 
-
+#pragma alloc_text( PAGED , port_query_interface )
 static NTSTATUS
 port_query_interface(
 	IN					DEVICE_OBJECT* const	p_dev_obj,
@@ -2097,6 +2097,7 @@
 
 
 /* Work item callback to handle DevicePowerD3 IRPs at passive level. */
+static IO_WORKITEM_ROUTINE __HibernateUpWorkItem;
 static void
 __HibernateUpWorkItem(
 	IN				DEVICE_OBJECT*				p_dev_obj,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_driver.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_driver.c	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_driver.c	(revision 8283)
@@ -79,21 +79,29 @@
 __read_registry(
 	IN				UNICODE_STRING* const		p_Param_Path );
 
+__drv_dispatchType(IRP_MJ_CREATE)
+static DRIVER_DISPATCH bus_drv_open;
 static NTSTATUS
 bus_drv_open(
 	IN				DEVICE_OBJECT				*p_dev_obj,
 	IN				IRP							*p_irp );
 
+__drv_dispatchType(IRP_MJ_CLEANUP)
+static DRIVER_DISPATCH bus_drv_cleanup;
 static NTSTATUS
 bus_drv_cleanup(
 	IN				DEVICE_OBJECT				*p_dev_obj,
 	IN				IRP							*p_irp );
 
+__drv_dispatchType(IRP_MJ_CLOSE)
+static DRIVER_DISPATCH bus_drv_close;
 static NTSTATUS
 bus_drv_close(
 	IN				DEVICE_OBJECT				*p_dev_obj,
 	IN				IRP							*p_irp );
 
+__drv_dispatchType(IRP_MJ_DEVICE_CONTROL)
+static DRIVER_DISPATCH bus_drv_ioctl;
 static NTSTATUS
 bus_drv_ioctl(
 	IN				DEVICE_OBJECT				*p_dev_obj,
@@ -108,12 +116,14 @@
 *
 * SYNOPSIS
 */
+__drv_dispatchType(IRP_MJ_SYSTEM_CONTROL)
+static DRIVER_DISPATCH bus_drv_sysctl;
 static NTSTATUS
 bus_drv_sysctl(
 	IN				DEVICE_OBJECT				*p_dev_obj,
 	IN				IRP							*p_irp );
 /**********/
-
+static DRIVER_UNLOAD bus_drv_unload;
 static void
 bus_drv_unload(
 	IN				DRIVER_OBJECT				*p_driver_obj );
@@ -961,7 +971,7 @@
 	BUS_EXIT( BUS_DBG_DRV );
 	return status;
 }
-static NTSTATUS
+static NTSTATUS	
 bus_drv_sysctl(
 	IN				DEVICE_OBJECT				*p_dev_obj,
 	IN				IRP							*p_irp )
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.c	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.c	(revision 8283)
@@ -1227,7 +1227,7 @@
 	return STATUS_SUCCESS;;
 }
 
-
+#pragma alloc_text( PAGED , fdo_query_interface )
 static NTSTATUS
 fdo_query_interface(
 	IN					DEVICE_OBJECT* const	p_dev_obj,
@@ -1337,7 +1337,7 @@
 
 
 /* Work item callback to handle DevicePowerD0 IRPs at passive level. */
-
+static IO_WORKITEM_ROUTINE __device_power_up_completion_workItem;
 static void
 __device_power_up_completion_workItem(
 	IN				DEVICE_OBJECT*				p_dev_obj,
@@ -1407,6 +1407,7 @@
 
 
 /*NOTE: Completion routines must NEVER be pageable. */
+static IO_COMPLETION_ROUTINE __device_power_up_completion;
 static NTSTATUS
 __device_power_up_completion(
 	IN				DEVICE_OBJECT				*p_dev_obj,
@@ -1460,7 +1461,7 @@
 	return status;
 }
 
-
+static IO_COMPLETION_ROUTINE __device_power_down_workItem_completion;
 static NTSTATUS __device_power_down_workItem_completion(
 	IN				DEVICE_OBJECT	*p_dev_obj,
 	IN				IRP				*p_irp,
@@ -1485,6 +1486,7 @@
 }
 
 /* Work item callback to handle DevicePowerD3 IRPs at passive level. */
+static IO_WORKITEM_ROUTINE __device_power_down_workItem;
 static void
 __device_power_down_workItem(
 	IN				DEVICE_OBJECT*				p_dev_obj,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_iou_mgr.c	(revision 8283)
@@ -1591,6 +1591,7 @@
 
 
 /* Work item callback to handle DevicePowerD3 IRPs at passive level. */
+static IO_WORKITEM_ROUTINE __HibernateUpWorkItem;
 static void
 __HibernateUpWorkItem(
 	IN				DEVICE_OBJECT*				p_dev_obj,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.h	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/core/bus/kernel/bus_pnp.h	(revision 8283)
@@ -47,6 +47,7 @@
 *
 * SYNOPSIS
 */
+DRIVER_ADD_DEVICE bus_add_device;
 NTSTATUS
 bus_add_device(
 	IN				PDRIVER_OBJECT				p_driver_obj,
Index: B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_pnp_po.h
===================================================================
--- B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_pnp_po.h	(revision 8278)
+++ B:/users/xalex/PREFAST_TRUNK_3_0_0/inc/kernel/complib/cl_pnp_po.h	(revision 8283)
@@ -675,6 +675,8 @@
 *
 * SYNOPSIS
 */
+__drv_dispatchType(IRP_MJ_PNP)
+DRIVER_DISPATCH cl_pnp;
 CL_EXPORT NTSTATUS
 cl_pnp(
 	IN				PDEVICE_OBJECT				p_dev_obj,
@@ -706,6 +708,8 @@
 *
 * SYNOPSIS
 */
+__drv_dispatchType(IRP_MJ_POWER)
+DRIVER_DISPATCH cl_power;
 CL_EXPORT NTSTATUS
 cl_power(
 	IN				PDEVICE_OBJECT				p_dev_obj,
