Type cast that might make this more robust. 'Dunno.

This commit is contained in:
rocky
2005-01-19 17:25:50 +00:00
parent 1b40bc3018
commit 8588f4ae8e

View File

@@ -1,5 +1,5 @@
/* /*
$Id: win32_ioctl.c,v 1.6 2005/01/13 19:39:24 rocky Exp $ $Id: win32_ioctl.c,v 1.7 2005/01/19 17:25:50 rocky Exp $
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
@@ -26,7 +26,7 @@
# include "config.h" # include "config.h"
#endif #endif
static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.6 2005/01/13 19:39:24 rocky Exp $"; static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.7 2005/01/19 17:25:50 rocky Exp $";
#ifdef HAVE_WIN32_CDROM #ifdef HAVE_WIN32_CDROM
@@ -361,18 +361,18 @@ is_cdrom_win32ioctl(const char c_drive_letter)
starting from lsn. Returns 0 if no error. starting from lsn. Returns 0 if no error.
*/ */
int int
read_audio_sectors_win32ioctl (_img_private_t *env, void *data, lsn_t lsn, read_audio_sectors_win32ioctl (_img_private_t *p_env, void *data, lsn_t lsn,
unsigned int nblocks) unsigned int nblocks)
{ {
DWORD dwBytesReturned; DWORD dwBytesReturned;
RAW_READ_INFO cdrom_raw; RAW_READ_INFO cdrom_raw;
/* Initialize CDROM_RAW_READ structure */ /* Initialize CDROM_RAW_READ structure */
cdrom_raw.DiskOffset.QuadPart = CDIO_CD_FRAMESIZE_RAW * lsn; cdrom_raw.DiskOffset.QuadPart = (long long) CDIO_CD_FRAMESIZE_RAW * lsn;
cdrom_raw.SectorCount = nblocks; cdrom_raw.SectorCount = nblocks;
cdrom_raw.TrackMode = CDDA; cdrom_raw.TrackMode = CDDA;
if( DeviceIoControl( env->h_device_handle, if( DeviceIoControl( p_env->h_device_handle,
IOCTL_CDROM_RAW_READ, &cdrom_raw, IOCTL_CDROM_RAW_READ, &cdrom_raw,
sizeof(RAW_READ_INFO), data, sizeof(RAW_READ_INFO), data,
CDIO_CD_FRAMESIZE_RAW * nblocks, CDIO_CD_FRAMESIZE_RAW * nblocks,
@@ -380,8 +380,13 @@ read_audio_sectors_win32ioctl (_img_private_t *env, void *data, lsn_t lsn,
char *psz_msg = NULL; char *psz_msg = NULL;
long int i_err = GetLastError(); long int i_err = GetLastError();
FORMAT_ERROR(i_err, psz_msg); FORMAT_ERROR(i_err, psz_msg);
cdio_info("Error reading audio-mode lsn %lu\n%s (%ld))", if (psz_msg) {
(long unsigned int) lsn, psz_msg, i_err); cdio_info("Error reading audio-mode lsn %lu\n%s (%ld))",
(long unsigned int) lsn, psz_msg, i_err);
} else {
cdio_info("Error reading audio-mode lsn %lu\n (%ld))",
(long unsigned int) lsn, i_err);
}
LocalFree(psz_msg); LocalFree(psz_msg);
return 1; return 1;
} }