drupal 7 wildcard and parameter replacement?
There seems to be some disparity in your naming conventions here. Your functions should be named with MODULENAME_ as a prefix, including all hooks that you implement.

For example, if your module is called 'sample' then as well as the folder the module files are in being called 'sample', your files will need to be named similarly (sample.info, sample.module, etc.). If you don't follow this convention your hooks won't be called; and it's just good practice to prefix your module's functions with the module name.

The other thing here is that you don't actually need to use your own router load function...the node module has already done it for you (with the node_load() function). You can simply re-use that:

function sample_menu() {
  $items['node/%node/images'] = array(
    'title' =&gt; 'Images',
    'weight' =&gt; -10,
    'page callback' =&gt; 'sample_show_tab_page',
    'page arguments' =&gt; array(1, 'images'),
    'access callback' =&gt; TRUE
  );
  return $items;
}


You should be aware that node_load() returns a node object, so the first parameter to your page callback function will be that object. The second will be the string 'images', as per the arguments you've provided in page arguments.

Your page callback (which I've renamed :P) would then look more like this:

function sample_show_tab_page($node, $arg1) {
  // Use whatever you need from the node object
  $nid = $node-&gt;nid;
  $title = $node-&gt;title;
  // etc...
}


Finally, and perhaps most importantly to commit to memory, make sure you clear Drupal's caches once you've added/edited any hook. Such implementations are cached, and the system won't pick up these changes until you tell it to.