In a work, there are only two elements in the block header change between hash attempts. That is, NTime and Nonce. The miner starts the nonce search to get a valid share, and there are several possibilities:
1) In a single nonce range (0~2^32-1), the miner find a nonce which meets the requirement of the valid share, so the miner exits the nonce search for this work and submit the nonce instantly, and then get another work from the pool.
2) In a single nonce range (0~2^32-1), the miner find a nonce which meets the requirement of the valid share, then the miner record it, and go on the nonce search until the complete of the nonce range search, and after this full range search the miner submit the recorded nonces and get another work from the pool.
3) The miner can't find a valid nonce after a full nonce range attempts, so it performs NTime rolling, and then start a new nonce range search, and also there are also some possibilities just like the above statements for the miner to finish this work and get another work from the pool.
Actually, my question implies another question, for a fixed work(except for the nonce), is it possible that more than one nonce can be found to get a valid diff 1 share?