[SCSIPORT]

- Implement ScsiPortGetLogicalUnit

svn path=/trunk/; revision=54484
This commit is contained in:
Cameron Gutman 2011-11-24 00:07:15 +00:00
parent c1a19714f6
commit be4fb81c94

View file

@ -580,37 +580,35 @@ ScsiPortGetLogicalUnit(IN PVOID HwDeviceExtension,
IN UCHAR TargetId, IN UCHAR TargetId,
IN UCHAR Lun) IN UCHAR Lun)
{ {
UNIMPLEMENTED; PSCSI_PORT_DEVICE_EXTENSION DeviceExtension;
#if 0 PSCSI_PORT_LUN_EXTENSION LunExtension;
PSCSI_PORT_DEVICE_EXTENSION DeviceExtension;
PSCSI_PORT_LUN_EXTENSION LunExtension;
PLIST_ENTRY Entry;
DPRINT("ScsiPortGetLogicalUnit() called\n"); DPRINT("ScsiPortGetLogicalUnit() called\n");
DeviceExtension = CONTAINING_RECORD(HwDeviceExtension, DeviceExtension = CONTAINING_RECORD(HwDeviceExtension,
SCSI_PORT_DEVICE_EXTENSION, SCSI_PORT_DEVICE_EXTENSION,
MiniPortDeviceExtension); MiniPortDeviceExtension);
if (IsListEmpty(&DeviceExtension->LunExtensionListHead))
return NULL;
Entry = DeviceExtension->LunExtensionListHead.Flink; /* Check the extension size */
while (Entry != &DeviceExtension->LunExtensionListHead) if (!DeviceExtension->LunExtensionSize)
{ {
LunExtension = CONTAINING_RECORD(Entry, /* They didn't want one */
SCSI_PORT_LUN_EXTENSION, return NULL;
List);
if (LunExtension->PathId == PathId &&
LunExtension->TargetId == TargetId &&
LunExtension->Lun == Lun)
{
return (PVOID)&LunExtension->MiniportLunExtension;
}
Entry = Entry->Flink;
} }
#endif
return NULL; LunExtension = SpiGetLunExtension(DeviceExtension,
PathId,
TargetId,
Lun);
/* Check that the logical unit exists */
if (!LunExtension)
{
/* Nope, return NULL */
return NULL;
}
/* Return the logical unit miniport extension */
return (LunExtension + 1);
} }