• last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates
[SCSIPORT]: Fixes:

- In SpiScanAdapter(), after an SCSI INQUIRY command has succeeded and we are setting up a LUN extension structure,

cache in its InquiryData member the inquiry data retrieved from the INQUIRY command (alternatively we might just cache

a pointer to a valid "LunInfo" since the latter are also cached elsewhere).

- This allows SpiBuildDeviceMap(), which is called just after SpiScanAdapter(), to correctly report in the registry SCSI tree

the correct Identifier and DeviceType values for the enumerated logical units.

- Use ExFreePoolWithTag in SpiScanAdapter().

[SCSIPORT]: Code formatting only.
[SCSIPORT]: Fixes + documentation:

- In SpiSendInquiry():

* use ExFreePoolWithTag;

* if IoBuildDeviceIoControlRequest() fails, exit correctly the loop so that the allocated buffers are cleaned up;

- In SpiBuildDeviceMap():

* support new peripheral type names, as documented in the links in the comments;

* fix the "CommunicationsPeripheral" name (communication'S') as documented, and as done in windows' scsiport driver.

[SCSIPORT]: Code formatting in the functions I'm going to touch next (in addition, add few "continue;" inside some loops so that I can reduce the indent level of code blocks).
[DRIVERS] Spelling fixes by Josh Soref. CORE-12286
  1. … 199 more files in changeset.
[SCSIPORT]: Port Dmitry's fix from r72059 to our scsiport driver too. I'm wondering how "difficult" it would be to have some kind of scsiport library to be shared between the driver and freeldr's.
- Fix some broken stuff involving DPRINT. Thought I had tested this, sorry for build break!
  1. … 2 more files in changeset.
[SCSIPORT] Better error messages when receiving unexpected IOCTLs of mount manager

- Use kernel handles instead of process handles


ScsiPortLogError: Print the information that is to be logged.


- Do not pass NULL adapter to IoMapTransfer


* Remove one time inclusions from the main header and put them back where they belong.

* Improve header inclusions.


  1. … 3 more files in changeset.

Fix a bug in size calculation that causes memory corruption on 64 bit

Fix some MSVC/x64 warnings


Fix some MSVC/x64 warnings

  1. … 1 more file in changeset.
Added descriptive DPRINT for an ioctl intended for the mount manager. Hopefully helps someone else trying to find that device 0x4d or 77 is, when no such device exists. It's not defined by value in header file but by ASCII 'M'.

- Fix a critical bug in interrupt sharing between scsiport miniports and other drivers which caused scsiport to mask the interrupts from other devices sitting behind it

- This commit and r57063 fixes bug 7231


- Fix a regression from r56863. New logic is: the requested data size is sizeof(ULONG), so if the result read is less than that - continue to the next slot. Thanks to SomeGuy for pointing out the problem.

See issue #7147 for more details.


- Don't stop enumerating functions of a PCI device if current function returned invalid vendor id. Also add a check for returned data size. This fixes detection of some storage controllers, e.g. Intel ICH8, ICH9, ICH10 chipsets.

Thanks to Alter (UniATA author) for finding the problem and providing solution.

See issue #7147 for more details.


- Implement ScsiPortGetLogicalUnit


- Remove a duplicate assignment

* Comment out some unused but set variables, remove some others.
  1. … 19 more files in changeset.

- Use sizeof(PVOID) instead of sizeof(PFOO) just for clarity that we really want a pointer size


- Don't initialize a pointer with RtlZeromemory

  1. … 2 more files in changeset.

* Add a PCH.

  1. … 4 more files in changeset.

- ScsiPortDeviceControl: Slight improvement to buffer length validation. Return failure status on a handful of failure cases. Prevents buffer overruns in user code.


- Fix a couple of typos in the DMA code from my last commit


- Implement support for 2 interrupts

- Halfplement support for 2 DMA channels

- Set/Read the CM_RESOURCE_DMA flags

- Remove a duplicate spin lock initialization

- Partially tested with 2 interrupts in use but UniATA seems to be broken because it registers both interrupts for each channel even though they are not sharable which causes it to fail when initializing the secondary IDE channel

  1. … 1 more file in changeset.

- Remove some code duplication and fix a bug of copying the same interrupt information twice for a device with 2 interrupts (instead of the info for interrupt 1 then the info for interrupt 2) effectively making initialization fail because the resource allocation code will detect a conflict with itself


Implement RequestTimerCall-Notification. This is used by uniata.

  1. … 1 more file in changeset.

- undefine macros that are defined by DDK headers, before implementing the functions

- add missing definitions for amd64

  1. … 1 more file in changeset.
Merge from amd64-branch:

34803 (sserapion)

Fix more warnings.

Convert pciidex to use spec file.

34864 (tkreuzer) // checkme vielleicht schon gemerged?


fix some ULONG to pointer casts

34870 (tkreuzer)


- fix some pointer to ULONG casts

34874 (tkreuzer)

class2: fix ULONG to pointer cast

34877 (tkreuzer)

- fix LARGE_INTEGER to pointer cast

35781 (tkreuzer)


define some fastcall functions to the normal functions on amd64

36011 (tkreuzer)


Fix a ULONG to pointer cast.

36012 (tkreuzer)


more ulong <-> pointer fixes

  1. … 24 more files in changeset.
Removed outdated email addresses.
  1. … 34 more files in changeset.