I am getting a 100% reproducible blue screen with the following.
Setup:
Pentium 2.4, 1024mb RAM
Windows XP Pro SP2
NEC 5700A DVD drive (rather old, but not ancient).
StarWind running (2.4.2, 0x20041108)
Athlon 1700, 1024mb RAM
Windows 2000 SP4
StarPort running (2.4.2, 0x20041104)
I setup the XP box to share the DVD drive (as "dvd") using StarWind. When I connect to it on from the Win 2000 computer, it sees "dvd" as expected, but upon clicking the "next" button to mount the drive, I get a blue screen (on this computer--the 2000 box). The XP computer continues to function without issue--as though nothing had happened. Here are the details of that crash:
KMODE_EXCEPTION_NOT_HANDLED
0x0000001E (0xC0000005, 0xEB081A59, 0x00000000, 0x00000028)
Address 0xEB081A59
Base at 0xEB080000
in CDR4_2K.SYS
So it looks like some code is throwing an exception in this kernel mode driver, and it's not being caught (bad! bad! :-p).
Interestingly, if I use the Microsoft iSCSI initiator on the 2000 box, I get the same problem (same blue screen) when trying to connect to the drive. This leads me to conjecture the problem is with StarWind, but who knows.
Here is my starwind.conf:
Code: Select all
#
# StarWind iSCSI server configuration file.
#
# This file contains list of SCSI devices that will be accessible to iSCSI.
# The device name should be placed in the first column followed by the target
# name. The device name and the target name should be separated by at least
# one space.
#
# $Id: starwind.conf,v 1.18 2004/10/30 01:16:28 valery Exp $
#
[parameters]
#
# LogLevel values: (0-DIsabled, 1-Errors, 2-Warnings, 3-all messages)
#
LogLevel = "1"
#
# Don't change the LogMask if you have no idea what does it mean!
#
LogMask = "0x8000ffff"
#
# Port number for iSCSI connectons
#
Port = "3260"
#
# Interface to listen to. "0.0.0.0" corresponds to "listen to all interfaces".
#
Interface = "0.0.0.0"
#
# Macros:
# $(host) - host name
# $(symid) - symbolic target id ('cdrom.z' for example)
#
#
# Uncomment the line below if you want to have global target id as part of
# target name
#
DefTargetName = "iqn.2003-06.com.rocketdivision.starwind:$(host).$(symid)"
#
# Username and password used for the control connection.
#
Login = "test"
Password = "##CY9rzUYh03PK3k6DJie09g=="
#
# CHAP authentification for control connections
#
#CtlAuthMode = "chap"
#CtlAuthServerName = "srv"
#CtlAuthServerSecret = "123"
#CtlAuthClientName = "user"
#CtlAuthClientSecret = "345"
#
# 'Echo = yes' - enables echo in the telnet configuration connection.
#
Echo = "no"
#
# Minimal 'maximum transfer length' should be supported by all SPTI devices
#
MinBufferSize = "65536"
#
# 'Minimal' aligment mask for SPTI devices - all buffers passed to SPTI will
# be aligned according to this mask at least. Sure if an adapter requests
# bigger aligment target will supply correctly aligmned buffers.
#
AlignmentMask = "0x0000"
#
# Setting 'AllowOnlyRecordableCd' to 'yes' forces the target to filter out all but
# recordable CD/DVD.
#
#AllowOnlyRecordableCd = "no"
#
# Auto Export some of the found Devices
#
#AutoExportDevices = "spti:disk,spti:cd/dvd"
#AutoExportDevices = "spti:cd/dvd"
#
# Length of iSCSI queue. (min 16, max 512)
#
MaxPendingRequests = "64"
[plugins]
#
# Plugins
#
# Parameters (mandatory):
# -module - plugin dll
# -symlink - device name prefix for all devices managed by the plugin
# -type - type of devices managed by the plugin
# (optional):
# -loglevel:"n" (n=0-3) - override log level for a plugin (by default global LogLevel value is used)
#
#
# Ram Disk plugin
#
addplugin -module:"RamDisk.dll" -symlink:"RamDrive" -type:"RAM disk"
#
# ImageFile-specific parameters (mandatory):
# imagedir - image files directory. The plugin scans this directory for available images.
# imagemask - image file mask. While scanning the directory (see above) the plugin will
# look only for files selected by this mask.
#
addplugin -module:"ImageFile.dll" -symlink:"ImageFile" -type:"Image file" -imagedir:"images" -imagemask:"*.img"
#
# VirtualDvd-specific parameters (optional):
# share - sharing option flags. May be '', 'r', 'w' or 'rw'. 'r' means that device will be
# shared for reading. 'w' - for writing. Default is ''.
# sessions - number of simultaneous iSCSI session allowed for this device. Default is 1.
#
addplugin -module:"VirtualDvd.dll" -symlink:"VirtualDvd" -type:"Virtual DVD"
# Experimental plugin
#addplugin -module:CdiImage.dll -symlink:CdiImage -type:"CD/DVD" -imagedir:"images" -imagemask:"*.img"
[devices]
#
# Hard drive accessible through SPTI
#
#add \\.\Physicaldrive0
#
# SPTI-specific device parameters (optional)
# -timeout:nnn - SCSI command execution timeout (in seconds). Default is 108000 (30 hours).
# -share:"<rw|r>" - to allow multiple initiators to access the device (shared mode)
# -sessions:nnn - set maximum number of initiators allowed to mount the device in shared mode
#
#
# CD-ROM accessible through SPTI
#
#add \\.\Z:
# Share a hard drive or a CD-ROM to multiple clients
#add \\.\F: -timeout:256 -share:"rw" -sessions:8
#
# ImageFile device parameters:
# -file - image files name. This name is relative to 'imagedir'. The file should exists.
# It can be created by means of 'mksparse' utility.
# -header - if not 0 the plugin will not use given amoung of bytes in the beginning of the file,
# This value should be sector aligned.
# -asyncmode:<no|yes> - if 'yes' the image is opened in asyncronous mode (you can benefit from this on stripped volumes)
#
#add "ImageFile0" -file:"image.img" -asyncmode:"yes"
#add ImageFile1 -file:"\\.\X:" -header:65536
#
# RAM disk device parameters:
# -size - size of RAM disk to create (in MB).
# -format - if 'yes' created disk will be formatted as FAT16 partition.
# -useawe:<no|yes> - allows creating of huge ram drives (>1GB)
# But the AWE mode is a bit slower than not using AWE!
# -speedtest:<no|yes> - can be used for network throughput tests.
# In the mode no data actually are written to or read from the ram disk.
#
#add RamDrive0 -size:16 -format:yes
#add RamDrive0 -size:16 -format:no -useawe:no -speedtest:yes
#
# Virtual DVD device parameters:
# -file - image (iso or mds) file name.
# -type - 'iso' or 'mds' depending on type of the image.
#
#add VirtualDvd0 -file:"D:\temp\iwin2k.iso" -type:"iso"
add "\\.\G:" "dvd"
[permissions]
#
# CHAP authentication
#
#allow -device:RamDrive0 -chapLocalName:"iqn.1991-05.com.microsoft:home.MSHOME.NET" -chapLocalSecret:"5432109876543210" -chapPeerSecret:"0123456789012345"
#allow -chapLocalName:"test" -chapLocalSecret:"5432109876543210" -chapPeerName:"" -chapPeerSecret:"0123456789012345"