anchor.diff:  		(foreign-slot-value overlapped '(:struct pounds::overlapped)
   				    'pounds::offset-high)
   		offset-high)
  -	  (pounds::%read-file (device-handle device)
  -			      buffer 
  -			      length 
  -			      nbytes
  -			      overlapped)))
  +	  (let ((res (pounds::%read-file (device-handle device)
  +					 buffer 
  +					 length 
  +					 nbytes
  +					 overlapped)))
  +	    (unless res
  +	      (pounds::get-last-error)))))
         ;; now write it back out to the new location
  -      (let ((offset (* new-block (geometry-bytes (device-geometry device)))))
  +      (let ((offset (* new-block length)))
   	(multiple-value-bind (offset-low offset-high) (pounds::split-offset offset)
   	  (setf (foreign-slot-value overlapped '(:struct pounds::overlapped)
   				    'pounds::offset)
  
positive.code:       (handler-case 
  	  (let ((geometry (get-disk-geometry handle)))
  	    (make-device :handle handle
  			 :geometry geometry))
  	(error (e)
  	  (pounds::%close-handle handle)
  	  (error e))))))
  
negative.code: 
  (in-package #:device)
  
  ;; access 
  ;;#define GENERIC_READ                     (0x80000000L)
  ;;#define GENERIC_WRITE                    (0x40000000L)
  