mirror of
https://github.com/reactos/reactos.git
synced 2025-04-27 09:00:27 +00:00
[DDK] Import definitions required by newer storage class drivers
CORE-17129
This commit is contained in:
parent
093f377c40
commit
3da77f9173
4 changed files with 1981 additions and 197 deletions
|
@ -85,6 +85,9 @@
|
||||||
#define CLASS_TAG_DEVICE_CONTROL 'OIcS'
|
#define CLASS_TAG_DEVICE_CONTROL 'OIcS'
|
||||||
#define CLASS_TAG_MODE_DATA 'oLcS'
|
#define CLASS_TAG_MODE_DATA 'oLcS'
|
||||||
#define CLASS_TAG_MULTIPATH 'mPcS'
|
#define CLASS_TAG_MULTIPATH 'mPcS'
|
||||||
|
#define CLASS_TAG_LOCK_TRACKING 'TLcS'
|
||||||
|
#define CLASS_TAG_LB_PROVISIONING 'PLcS'
|
||||||
|
#define CLASS_TAG_MANAGE_DATASET 'MDcS'
|
||||||
|
|
||||||
#define MAXIMUM_RETRIES 4
|
#define MAXIMUM_RETRIES 4
|
||||||
|
|
||||||
|
@ -182,6 +185,7 @@
|
||||||
#define GUID_CLASSPNP_QUERY_REGINFOEX {0x00e34b11, 0x2444, 0x4745, {0xa5, 0x3d, 0x62, 0x01, 0x00, 0xcd, 0x82, 0xf7}}
|
#define GUID_CLASSPNP_QUERY_REGINFOEX {0x00e34b11, 0x2444, 0x4745, {0xa5, 0x3d, 0x62, 0x01, 0x00, 0xcd, 0x82, 0xf7}}
|
||||||
#define GUID_CLASSPNP_SENSEINFO2 {0x509a8c5f, 0x71d7, 0x48f6, {0x82, 0x1e, 0x17, 0x3c, 0x49, 0xbf, 0x2f, 0x18}}
|
#define GUID_CLASSPNP_SENSEINFO2 {0x509a8c5f, 0x71d7, 0x48f6, {0x82, 0x1e, 0x17, 0x3c, 0x49, 0xbf, 0x2f, 0x18}}
|
||||||
#define GUID_CLASSPNP_WORKING_SET {0x105701b0, 0x9e9b, 0x47cb, {0x97, 0x80, 0x81, 0x19, 0x8a, 0xf7, 0xb5, 0x24}}
|
#define GUID_CLASSPNP_WORKING_SET {0x105701b0, 0x9e9b, 0x47cb, {0x97, 0x80, 0x81, 0x19, 0x8a, 0xf7, 0xb5, 0x24}}
|
||||||
|
#define GUID_CLASSPNP_SRB_SUPPORT {0x0a483941, 0xbdfd, 0x4f7b, {0xbe, 0x95, 0xce, 0xe2, 0xa2, 0x16, 0x09, 0x0c}}
|
||||||
|
|
||||||
#define DEFAULT_FAILURE_PREDICTION_PERIOD 60 * 60 * 1
|
#define DEFAULT_FAILURE_PREDICTION_PERIOD 60 * 60 * 1
|
||||||
|
|
||||||
|
@ -250,6 +254,16 @@ typedef enum {
|
||||||
PowerDownDeviceUnlocked2
|
PowerDownDeviceUnlocked2
|
||||||
} CLASS_POWER_DOWN_STATE2;
|
} CLASS_POWER_DOWN_STATE2;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
PowerDownDeviceInitial3 = 0,
|
||||||
|
PowerDownDeviceLocked3,
|
||||||
|
PowerDownDeviceQuiesced3,
|
||||||
|
PowerDownDeviceFlushed3,
|
||||||
|
PowerDownDeviceStopped3,
|
||||||
|
PowerDownDeviceOff3,
|
||||||
|
PowerDownDeviceUnlocked3
|
||||||
|
} CLASS_POWER_DOWN_STATE3;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
PowerUpDeviceInitial,
|
PowerUpDeviceInitial,
|
||||||
PowerUpDeviceLocked,
|
PowerUpDeviceLocked,
|
||||||
|
@ -273,6 +287,9 @@ typedef struct _CLASS_PRIVATE_COMMON_DATA CLASS_PRIVATE_COMMON_DATA, *PCLASS_PRI
|
||||||
struct _MEDIA_CHANGE_DETECTION_INFO;
|
struct _MEDIA_CHANGE_DETECTION_INFO;
|
||||||
typedef struct _MEDIA_CHANGE_DETECTION_INFO MEDIA_CHANGE_DETECTION_INFO, *PMEDIA_CHANGE_DETECTION_INFO;
|
typedef struct _MEDIA_CHANGE_DETECTION_INFO MEDIA_CHANGE_DETECTION_INFO, *PMEDIA_CHANGE_DETECTION_INFO;
|
||||||
|
|
||||||
|
struct _DICTIONARY_HEADER;
|
||||||
|
typedef struct _DICTIONARY_HEADER DICTIONARY_HEADER, *PDICTIONARY_HEADER;
|
||||||
|
|
||||||
typedef struct _DICTIONARY {
|
typedef struct _DICTIONARY {
|
||||||
ULONGLONG Signature;
|
ULONGLONG Signature;
|
||||||
struct _DICTIONARY_HEADER* List;
|
struct _DICTIONARY_HEADER* List;
|
||||||
|
@ -551,6 +568,10 @@ typedef struct _CLASS_INTERPRET_SENSE_INFO2 {
|
||||||
|
|
||||||
C_ASSERT((MAXULONG - sizeof(SRB_HISTORY)) / 30000 >= sizeof(SRB_HISTORY_ITEM));
|
C_ASSERT((MAXULONG - sizeof(SRB_HISTORY)) / 30000 >= sizeof(SRB_HISTORY_ITEM));
|
||||||
|
|
||||||
|
// for SrbSupport
|
||||||
|
#define CLASS_SRB_SCSI_REQUEST_BLOCK 0x1
|
||||||
|
#define CLASS_SRB_STORAGE_REQUEST_BLOCK 0x2
|
||||||
|
|
||||||
typedef struct _CLASS_DRIVER_EXTENSION {
|
typedef struct _CLASS_DRIVER_EXTENSION {
|
||||||
UNICODE_STRING RegistryPath;
|
UNICODE_STRING RegistryPath;
|
||||||
CLASS_INIT_DATA InitData;
|
CLASS_INIT_DATA InitData;
|
||||||
|
@ -566,6 +587,9 @@ typedef struct _CLASS_DRIVER_EXTENSION {
|
||||||
PCLASS_INTERPRET_SENSE_INFO2 InterpretSenseInfo;
|
PCLASS_INTERPRET_SENSE_INFO2 InterpretSenseInfo;
|
||||||
PCLASS_WORKING_SET WorkingSet;
|
PCLASS_WORKING_SET WorkingSet;
|
||||||
#endif
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
ULONG SrbSupport;
|
||||||
|
#endif
|
||||||
} CLASS_DRIVER_EXTENSION, *PCLASS_DRIVER_EXTENSION;
|
} CLASS_DRIVER_EXTENSION, *PCLASS_DRIVER_EXTENSION;
|
||||||
|
|
||||||
typedef struct _COMMON_DEVICE_EXTENSION {
|
typedef struct _COMMON_DEVICE_EXTENSION {
|
||||||
|
@ -651,6 +675,7 @@ typedef struct _CLASS_POWER_CONTEXT {
|
||||||
union {
|
union {
|
||||||
CLASS_POWER_DOWN_STATE PowerDown;
|
CLASS_POWER_DOWN_STATE PowerDown;
|
||||||
CLASS_POWER_DOWN_STATE2 PowerDown2;
|
CLASS_POWER_DOWN_STATE2 PowerDown2;
|
||||||
|
CLASS_POWER_DOWN_STATE3 PowerDown3;
|
||||||
CLASS_POWER_UP_STATE PowerUp;
|
CLASS_POWER_UP_STATE PowerUp;
|
||||||
} PowerChangeState;
|
} PowerChangeState;
|
||||||
CLASS_POWER_OPTIONS Options;
|
CLASS_POWER_OPTIONS Options;
|
||||||
|
@ -665,14 +690,30 @@ typedef struct _CLASS_POWER_CONTEXT {
|
||||||
SCSI_REQUEST_BLOCK Srb;
|
SCSI_REQUEST_BLOCK Srb;
|
||||||
} CLASS_POWER_CONTEXT, *PCLASS_POWER_CONTEXT;
|
} CLASS_POWER_CONTEXT, *PCLASS_POWER_CONTEXT;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
|
||||||
|
#define CLASS_SRBEX_SCSI_CDB16_BUFFER_SIZE (sizeof(STORAGE_REQUEST_BLOCK) + sizeof(STOR_ADDR_BTL8) + sizeof(SRBEX_DATA_SCSI_CDB16))
|
||||||
|
#define CLASS_SRBEX_NO_SRBEX_DATA_BUFFER_SIZE (sizeof(STORAGE_REQUEST_BLOCK) + sizeof(STOR_ADDR_BTL8))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _COMPLETION_CONTEXT {
|
typedef struct _COMPLETION_CONTEXT {
|
||||||
PDEVICE_OBJECT DeviceObject;
|
PDEVICE_OBJECT DeviceObject;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
union
|
||||||
|
{
|
||||||
SCSI_REQUEST_BLOCK Srb;
|
SCSI_REQUEST_BLOCK Srb;
|
||||||
|
STORAGE_REQUEST_BLOCK SrbEx;
|
||||||
|
UCHAR SrbExBuffer[CLASS_SRBEX_SCSI_CDB16_BUFFER_SIZE];
|
||||||
|
} Srb;
|
||||||
|
#else
|
||||||
|
SCSI_REQUEST_BLOCK Srb;
|
||||||
|
#endif
|
||||||
} COMPLETION_CONTEXT, *PCOMPLETION_CONTEXT;
|
} COMPLETION_CONTEXT, *PCOMPLETION_CONTEXT;
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInitialize(
|
ClassInitialize(
|
||||||
|
@ -686,6 +727,143 @@ typedef struct _CLASS_QUERY_WMI_REGINFO_EX_LIST {
|
||||||
__callback PCLASS_QUERY_WMI_REGINFO_EX ClassPdoQueryWmiRegInfoEx;
|
__callback PCLASS_QUERY_WMI_REGINFO_EX ClassPdoQueryWmiRegInfoEx;
|
||||||
} CLASS_QUERY_WMI_REGINFO_EX_LIST, *PCLASS_QUERY_WMI_REGINFO_EX_LIST;
|
} CLASS_QUERY_WMI_REGINFO_EX_LIST, *PCLASS_QUERY_WMI_REGINFO_EX_LIST;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SupportUnknown = 0,
|
||||||
|
Supported,
|
||||||
|
NotSupported
|
||||||
|
} CLASS_FUNCTION_SUPPORT;
|
||||||
|
|
||||||
|
typedef struct _CLASS_VPD_B1_DATA
|
||||||
|
{
|
||||||
|
NTSTATUS CommandStatus;
|
||||||
|
USHORT MediumRotationRate;
|
||||||
|
UCHAR NominalFormFactor;
|
||||||
|
UCHAR Zoned;
|
||||||
|
ULONG MediumProductType;
|
||||||
|
ULONG DepopulationTime;
|
||||||
|
} CLASS_VPD_B1_DATA, *PCLASS_VPD_B1_DATA;
|
||||||
|
|
||||||
|
typedef struct _CLASS_VPD_B0_DATA
|
||||||
|
{
|
||||||
|
NTSTATUS CommandStatus;
|
||||||
|
ULONG MaxUnmapLbaCount;
|
||||||
|
ULONG MaxUnmapBlockDescrCount;
|
||||||
|
ULONG OptimalUnmapGranularity;
|
||||||
|
ULONG UnmapGranularityAlignment;
|
||||||
|
BOOLEAN UGAVALID;
|
||||||
|
UCHAR Reserved0;
|
||||||
|
USHORT OptimalTransferLengthGranularity;
|
||||||
|
ULONG MaximumTransferLength;
|
||||||
|
ULONG OptimalTransferLength;
|
||||||
|
} CLASS_VPD_B0_DATA, *PCLASS_VPD_B0_DATA;
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable:4214)
|
||||||
|
#endif
|
||||||
|
typedef struct _CLASS_VPD_B2_DATA
|
||||||
|
{
|
||||||
|
NTSTATUS CommandStatus;
|
||||||
|
UCHAR ThresholdExponent;
|
||||||
|
UCHAR DP:1;
|
||||||
|
UCHAR ANC_SUP:1;
|
||||||
|
UCHAR Reserved0:2;
|
||||||
|
UCHAR LBPRZ:1;
|
||||||
|
UCHAR LBPWS10:1;
|
||||||
|
UCHAR LBPWS:1;
|
||||||
|
UCHAR LBPU:1;
|
||||||
|
UCHAR ProvisioningType:3;
|
||||||
|
UCHAR Reserved1:5;
|
||||||
|
ULONG SoftThresholdEventPending;
|
||||||
|
} CLASS_VPD_B2_DATA, *PCLASS_VPD_B2_DATA;
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct _CLASS_READ_CAPACITY16_DATA
|
||||||
|
{
|
||||||
|
NTSTATUS CommandStatus;
|
||||||
|
ULONG BytesPerLogicalSector;
|
||||||
|
ULONG BytesPerPhysicalSector;
|
||||||
|
ULONG BytesOffsetForSectorAlignment;
|
||||||
|
BOOLEAN LBProvisioningEnabled;
|
||||||
|
BOOLEAN LBProvisioningReadZeros;
|
||||||
|
UCHAR Reserved0[2];
|
||||||
|
ULONG Reserved1;
|
||||||
|
} CLASS_READ_CAPACITY16_DATA, *PCLASS_READ_CAPACITY16_DATA;
|
||||||
|
|
||||||
|
typedef struct _CLASS_VPD_ECOP_BLOCK_DEVICE_ROD_LIMITS
|
||||||
|
{
|
||||||
|
NTSTATUS CommandStatus;
|
||||||
|
USHORT MaximumRangeDescriptors;
|
||||||
|
UCHAR Restricted;
|
||||||
|
UCHAR Reserved;
|
||||||
|
ULONG MaximumInactivityTimer;
|
||||||
|
ULONG DefaultInactivityTimer;
|
||||||
|
ULONGLONG MaximumTokenTransferSize;
|
||||||
|
ULONGLONG OptimalTransferCount;
|
||||||
|
} CLASS_VPD_ECOP_BLOCK_DEVICE_ROD_LIMITS, *PCLASS_VPD_ECOP_BLOCK_DEVICE_ROD_LIMITS;
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable:4214)
|
||||||
|
#endif
|
||||||
|
typedef struct _CLASS_FUNCTION_SUPPORT_INFO
|
||||||
|
{
|
||||||
|
KSPIN_LOCK SyncLock;
|
||||||
|
ULONG GenerationCount;
|
||||||
|
volatile ULONG ChangeRequestCount;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
ULONG BlockLimits:1;
|
||||||
|
ULONG BlockDeviceCharacteristics:1;
|
||||||
|
ULONG LBProvisioning:1;
|
||||||
|
ULONG BlockDeviceRODLimits:1;
|
||||||
|
ULONG ZonedBlockDeviceCharacteristics:1;
|
||||||
|
ULONG Reserved:22;
|
||||||
|
ULONG DeviceType:5;
|
||||||
|
} ValidInquiryPages;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
CLASS_FUNCTION_SUPPORT SeekPenaltyProperty;
|
||||||
|
CLASS_FUNCTION_SUPPORT AccessAlignmentProperty;
|
||||||
|
CLASS_FUNCTION_SUPPORT TrimProperty;
|
||||||
|
CLASS_FUNCTION_SUPPORT TrimProcess;
|
||||||
|
} LowerLayerSupport;
|
||||||
|
BOOLEAN RegAccessAlignmentQueryNotSupported;
|
||||||
|
BOOLEAN AsynchronousNotificationSupported;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
|
||||||
|
BOOLEAN UseModeSense10;
|
||||||
|
UCHAR Reserved;
|
||||||
|
#else
|
||||||
|
UCHAR Reserved[2];
|
||||||
|
#endif
|
||||||
|
CLASS_VPD_B0_DATA BlockLimitsData;
|
||||||
|
CLASS_VPD_B1_DATA DeviceCharacteristicsData;
|
||||||
|
CLASS_VPD_B2_DATA LBProvisioningData;
|
||||||
|
CLASS_READ_CAPACITY16_DATA ReadCapacity16Data;
|
||||||
|
CLASS_VPD_ECOP_BLOCK_DEVICE_ROD_LIMITS BlockDeviceRODLimitsData;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
ULONG D3ColdSupported:1;
|
||||||
|
ULONG DeviceWakeable:1;
|
||||||
|
ULONG IdlePowerEnabled:1;
|
||||||
|
ULONG D3IdleTimeoutOverridden:1;
|
||||||
|
ULONG NoVerifyDuringIdlePower:1;
|
||||||
|
ULONG Reserved2:27;
|
||||||
|
ULONG D3IdleTimeout;
|
||||||
|
} IdlePower;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
|
||||||
|
CLASS_FUNCTION_SUPPORT HwFirmwareGetInfoSupport;
|
||||||
|
PSTORAGE_HW_FIRMWARE_INFO HwFirmwareInfo;
|
||||||
|
#endif
|
||||||
|
} CLASS_FUNCTION_SUPPORT_INFO, *PCLASS_FUNCTION_SUPPORT_INFO;
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct _FUNCTIONAL_DEVICE_EXTENSION {
|
typedef struct _FUNCTIONAL_DEVICE_EXTENSION {
|
||||||
_ANONYMOUS_UNION union {
|
_ANONYMOUS_UNION union {
|
||||||
_ANONYMOUS_STRUCT struct {
|
_ANONYMOUS_STRUCT struct {
|
||||||
|
@ -701,6 +879,12 @@ typedef struct _FUNCTIONAL_DEVICE_EXTENSION {
|
||||||
ULONG DMByteSkew;
|
ULONG DMByteSkew;
|
||||||
ULONG DMSkew;
|
ULONG DMSkew;
|
||||||
BOOLEAN DMActive;
|
BOOLEAN DMActive;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
UCHAR SenseDataLength;
|
||||||
|
#else
|
||||||
|
UCHAR Reserved;
|
||||||
|
#endif
|
||||||
|
UCHAR Reserved0[2];
|
||||||
DISK_GEOMETRY DiskGeometry;
|
DISK_GEOMETRY DiskGeometry;
|
||||||
PSENSE_DATA SenseData;
|
PSENSE_DATA SenseData;
|
||||||
ULONG TimeOutValue;
|
ULONG TimeOutValue;
|
||||||
|
@ -755,22 +939,31 @@ typedef struct _FUNCTIONAL_DEVICE_EXTENSION {
|
||||||
ULONG SavedSrbFlags;
|
ULONG SavedSrbFlags;
|
||||||
ULONG SavedErrorCount;
|
ULONG SavedErrorCount;
|
||||||
ULONG_PTR Reserved1;
|
ULONG_PTR Reserved1;
|
||||||
#endif
|
#endif /* (SPVER(NTDDI_VERSION) < 2) */
|
||||||
|
|
||||||
#else /* (NTDDI_VERSION <= NTDDI_WIN2K) */
|
#else /* (NTDDI_VERSION <= NTDDI_WIN2K) */
|
||||||
|
|
||||||
PCLASS_PRIVATE_FDO_DATA PrivateFdoData;
|
PCLASS_PRIVATE_FDO_DATA PrivateFdoData;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
PCLASS_FUNCTION_SUPPORT_INFO FunctionSupportInfo;
|
||||||
|
PSTORAGE_MINIPORT_DESCRIPTOR MiniportDescriptor;
|
||||||
|
#else
|
||||||
ULONG_PTR Reserved2;
|
ULONG_PTR Reserved2;
|
||||||
ULONG_PTR Reserved3;
|
ULONG_PTR Reserved3;
|
||||||
ULONG_PTR Reserved4;
|
#endif
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
|
||||||
|
PADDITIONAL_FDO_DATA AdditionalFdoData;
|
||||||
|
#else
|
||||||
|
ULONG_PTR Reserved4;
|
||||||
|
#endif
|
||||||
#endif /* (NTDDI_VERSION <= NTDDI_WIN2K) */
|
#endif /* (NTDDI_VERSION <= NTDDI_WIN2K) */
|
||||||
|
|
||||||
} FUNCTIONAL_DEVICE_EXTENSION, *PFUNCTIONAL_DEVICE_EXTENSION;
|
} FUNCTIONAL_DEVICE_EXTENSION, *PFUNCTIONAL_DEVICE_EXTENSION;
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInitializeEx(
|
ClassInitializeEx(
|
||||||
|
@ -781,7 +974,7 @@ ClassInitializeEx(
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
_Post_satisfies_(return <= 0)
|
_Post_satisfies_(return <= 0)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassCreateDeviceObject(
|
ClassCreateDeviceObject(
|
||||||
|
@ -793,19 +986,19 @@ ClassCreateDeviceObject(
|
||||||
PDEVICE_OBJECT *DeviceObject);
|
PDEVICE_OBJECT *DeviceObject);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassReadDriveCapacity(
|
ClassReadDriveCapacity(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject);
|
_In_ PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassReleaseQueue(
|
ClassReleaseQueue(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject);
|
_In_ PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSplitRequest(
|
ClassSplitRequest(
|
||||||
|
@ -813,14 +1006,14 @@ ClassSplitRequest(
|
||||||
_In_ PIRP Irp,
|
_In_ PIRP Irp,
|
||||||
_In_ ULONG MaximumBytes);
|
_In_ ULONG MaximumBytes);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassDeviceControl(
|
ClassDeviceControl(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
_Inout_ PIRP Irp);
|
_Inout_ PIRP Irp);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassIoComplete(
|
ClassIoComplete(
|
||||||
|
@ -828,7 +1021,7 @@ ClassIoComplete(
|
||||||
PIRP Irp,
|
PIRP Irp,
|
||||||
PVOID Context);
|
PVOID Context);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassIoCompleteAssociated(
|
ClassIoCompleteAssociated(
|
||||||
|
@ -836,7 +1029,7 @@ ClassIoCompleteAssociated(
|
||||||
PIRP Irp,
|
PIRP Irp,
|
||||||
PVOID Context);
|
PVOID Context);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInterpretSenseInfo(
|
ClassInterpretSenseInfo(
|
||||||
|
@ -860,21 +1053,21 @@ ClassSendDeviceIoControlSynchronous(
|
||||||
_In_ BOOLEAN InternalDeviceIoControl,
|
_In_ BOOLEAN InternalDeviceIoControl,
|
||||||
_Out_ PIO_STATUS_BLOCK IoStatus);
|
_Out_ PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSendIrpSynchronous(
|
ClassSendIrpSynchronous(
|
||||||
_In_ PDEVICE_OBJECT TargetDeviceObject,
|
_In_ PDEVICE_OBJECT TargetDeviceObject,
|
||||||
_In_ PIRP Irp);
|
_In_ PIRP Irp);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassForwardIrpSynchronous(
|
ClassForwardIrpSynchronous(
|
||||||
_In_ PCOMMON_DEVICE_EXTENSION CommonExtension,
|
_In_ PCOMMON_DEVICE_EXTENSION CommonExtension,
|
||||||
_In_ PIRP Irp);
|
_In_ PIRP Irp);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSendSrbSynchronous(
|
ClassSendSrbSynchronous(
|
||||||
|
@ -884,7 +1077,7 @@ ClassSendSrbSynchronous(
|
||||||
_In_ ULONG BufferLength,
|
_In_ ULONG BufferLength,
|
||||||
_In_ BOOLEAN WriteToDevice);
|
_In_ BOOLEAN WriteToDevice);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSendSrbAsynchronous(
|
ClassSendSrbAsynchronous(
|
||||||
|
@ -895,14 +1088,14 @@ ClassSendSrbAsynchronous(
|
||||||
_In_ ULONG BufferLength,
|
_In_ ULONG BufferLength,
|
||||||
_In_ BOOLEAN WriteToDevice);
|
_In_ BOOLEAN WriteToDevice);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassBuildRequest(
|
ClassBuildRequest(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
_In_ PIRP Irp);
|
_In_ PIRP Irp);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassModeSense(
|
ClassModeSense(
|
||||||
|
@ -911,7 +1104,7 @@ ClassModeSense(
|
||||||
_In_ ULONG Length,
|
_In_ ULONG Length,
|
||||||
_In_ UCHAR PageMode);
|
_In_ UCHAR PageMode);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassFindModePage(
|
ClassFindModePage(
|
||||||
|
@ -921,14 +1114,14 @@ ClassFindModePage(
|
||||||
_In_ BOOLEAN Use6Byte);
|
_In_ BOOLEAN Use6Byte);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassClaimDevice(
|
ClassClaimDevice(
|
||||||
_In_ PDEVICE_OBJECT LowerDeviceObject,
|
_In_ PDEVICE_OBJECT LowerDeviceObject,
|
||||||
_In_ BOOLEAN Release);
|
_In_ BOOLEAN Release);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInternalIoControl(
|
ClassInternalIoControl(
|
||||||
|
@ -936,7 +1129,7 @@ ClassInternalIoControl(
|
||||||
PIRP Irp);
|
PIRP Irp);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInitializeSrbLookasideList(
|
ClassInitializeSrbLookasideList(
|
||||||
|
@ -944,51 +1137,51 @@ ClassInitializeSrbLookasideList(
|
||||||
_In_ ULONG NumberElements);
|
_In_ ULONG NumberElements);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassDeleteSrbLookasideList(
|
ClassDeleteSrbLookasideList(
|
||||||
_Inout_ PCOMMON_DEVICE_EXTENSION CommonExtension);
|
_Inout_ PCOMMON_DEVICE_EXTENSION CommonExtension);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassQueryTimeOutRegistryValue(
|
ClassQueryTimeOutRegistryValue(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject);
|
_In_ PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassGetDescriptor(
|
ClassGetDescriptor(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
_In_ PSTORAGE_PROPERTY_ID PropertyId,
|
_In_ PSTORAGE_PROPERTY_ID PropertyId,
|
||||||
_Outptr_ PSTORAGE_DESCRIPTOR_HEADER *Descriptor);
|
_Outptr_ PVOID *Descriptor);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInvalidateBusRelations(
|
ClassInvalidateBusRelations(
|
||||||
_In_ PDEVICE_OBJECT Fdo);
|
_In_ PDEVICE_OBJECT Fdo);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassMarkChildrenMissing(
|
ClassMarkChildrenMissing(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION Fdo);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION Fdo);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassMarkChildMissing(
|
ClassMarkChildMissing(
|
||||||
_In_ PPHYSICAL_DEVICE_EXTENSION PdoExtension,
|
_In_ PPHYSICAL_DEVICE_EXTENSION PdoExtension,
|
||||||
_In_ BOOLEAN AcquireChildLock);
|
_In_ BOOLEAN AcquireChildLock);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
ClassDebugPrint(
|
ClassDebugPrint(
|
||||||
_In_ CLASS_DEBUG_LEVEL DebugPrintLevel,
|
_In_ CLASS_DEBUG_LEVEL DebugPrintLevel,
|
||||||
|
@ -997,13 +1190,13 @@ ClassDebugPrint(
|
||||||
|
|
||||||
__drv_aliasesMem
|
__drv_aliasesMem
|
||||||
_IRQL_requires_max_(DISPATCH_LEVEL)
|
_IRQL_requires_max_(DISPATCH_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PCLASS_DRIVER_EXTENSION
|
PCLASS_DRIVER_EXTENSION
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassGetDriverExtension(
|
ClassGetDriverExtension(
|
||||||
_In_ PDRIVER_OBJECT DriverObject);
|
_In_ PDRIVER_OBJECT DriverObject);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassCompleteRequest(
|
ClassCompleteRequest(
|
||||||
|
@ -1011,14 +1204,14 @@ ClassCompleteRequest(
|
||||||
_In_ PIRP Irp,
|
_In_ PIRP Irp,
|
||||||
_In_ CCHAR PriorityBoost);
|
_In_ CCHAR PriorityBoost);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassReleaseRemoveLock(
|
ClassReleaseRemoveLock(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
PIRP Tag);
|
PIRP Tag);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassAcquireRemoveLockEx(
|
ClassAcquireRemoveLockEx(
|
||||||
|
@ -1028,7 +1221,7 @@ ClassAcquireRemoveLockEx(
|
||||||
_In_ ULONG Line);
|
_In_ ULONG Line);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassUpdateInformationInRegistry(
|
ClassUpdateInformationInRegistry(
|
||||||
|
@ -1038,7 +1231,7 @@ ClassUpdateInformationInRegistry(
|
||||||
_In_reads_bytes_opt_(InquiryDataLength) PINQUIRYDATA InquiryData,
|
_In_reads_bytes_opt_(InquiryDataLength) PINQUIRYDATA InquiryData,
|
||||||
_In_ ULONG InquiryDataLength);
|
_In_ ULONG InquiryDataLength);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassWmiCompleteRequest(
|
ClassWmiCompleteRequest(
|
||||||
|
@ -1049,7 +1242,7 @@ ClassWmiCompleteRequest(
|
||||||
_In_ CCHAR PriorityBoost);
|
_In_ CCHAR PriorityBoost);
|
||||||
|
|
||||||
_IRQL_requires_max_(DISPATCH_LEVEL)
|
_IRQL_requires_max_(DISPATCH_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassWmiFireEvent(
|
ClassWmiFireEvent(
|
||||||
|
@ -1059,14 +1252,14 @@ ClassWmiFireEvent(
|
||||||
_In_ ULONG EventDataSize,
|
_In_ ULONG EventDataSize,
|
||||||
_In_reads_bytes_(EventDataSize) PVOID EventData);
|
_In_reads_bytes_(EventDataSize) PVOID EventData);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassResetMediaChangeTimer(
|
ClassResetMediaChangeTimer(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInitializeMediaChangeDetection(
|
ClassInitializeMediaChangeDetection(
|
||||||
|
@ -1074,20 +1267,20 @@ ClassInitializeMediaChangeDetection(
|
||||||
_In_ PUCHAR EventPrefix);
|
_In_ PUCHAR EventPrefix);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassInitializeTestUnitPolling(
|
ClassInitializeTestUnitPolling(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension,
|
||||||
_In_ BOOLEAN AllowDriveToSleep);
|
_In_ BOOLEAN AllowDriveToSleep);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVPB
|
PVPB
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassGetVpb(
|
ClassGetVpb(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject);
|
_In_ PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSpinDownPowerHandler(
|
ClassSpinDownPowerHandler(
|
||||||
|
@ -1122,13 +1315,13 @@ ClassNotifyFailurePredicted(
|
||||||
_In_ UCHAR Lun);
|
_In_ UCHAR Lun);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassAcquireChildLock(
|
ClassAcquireChildLock(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassReleaseChildLock(
|
ClassReleaseChildLock(
|
||||||
|
@ -1142,14 +1335,14 @@ ClassSendStartUnit(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject);
|
_In_ PDEVICE_OBJECT DeviceObject);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassRemoveDevice(
|
ClassRemoveDevice(
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
_In_ PDEVICE_OBJECT DeviceObject,
|
||||||
_In_ UCHAR RemoveType);
|
_In_ UCHAR RemoveType);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassAsynchronousCompletion(
|
ClassAsynchronousCompletion(
|
||||||
|
@ -1157,13 +1350,13 @@ ClassAsynchronousCompletion(
|
||||||
PIRP Irp,
|
PIRP Irp,
|
||||||
PVOID Event);
|
PVOID Event);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassCheckMediaState(
|
ClassCheckMediaState(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassCheckVerifyComplete(
|
ClassCheckVerifyComplete(
|
||||||
|
@ -1172,7 +1365,7 @@ ClassCheckVerifyComplete(
|
||||||
PVOID Context);
|
PVOID Context);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassSetMediaChangeState(
|
ClassSetMediaChangeState(
|
||||||
|
@ -1181,21 +1374,21 @@ ClassSetMediaChangeState(
|
||||||
_In_ BOOLEAN Wait);
|
_In_ BOOLEAN Wait);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassEnableMediaChangeDetection(
|
ClassEnableMediaChangeDetection(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassDisableMediaChangeDetection(
|
ClassDisableMediaChangeDetection(
|
||||||
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension);
|
||||||
|
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ClassCleanupMediaChangeDetection(
|
ClassCleanupMediaChangeDetection(
|
||||||
|
@ -1239,6 +1432,33 @@ ClassSendNotification(
|
||||||
|
|
||||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||||
|
|
||||||
|
__inline
|
||||||
|
UCHAR
|
||||||
|
GET_FDO_EXTENSON_SENSE_DATA_LENGTH (
|
||||||
|
_In_ PFUNCTIONAL_DEVICE_EXTENSION FdoExtension)
|
||||||
|
{
|
||||||
|
UCHAR SenseDataLength = 0;
|
||||||
|
|
||||||
|
if (FdoExtension->SenseData != NULL)
|
||||||
|
{
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
if (FdoExtension->SenseDataLength > 0)
|
||||||
|
{
|
||||||
|
SenseDataLength = FdoExtension->SenseDataLength;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// For backward compatibility with Windows 7 and earlier
|
||||||
|
SenseDataLength = SENSE_BUFFER_SIZE;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
SenseDataLength = SENSE_BUFFER_SIZE;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return SenseDataLength;
|
||||||
|
}
|
||||||
|
|
||||||
static __inline
|
static __inline
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
PORT_ALLOCATED_SENSE(
|
PORT_ALLOCATED_SENSE(
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -146,7 +146,7 @@ typedef struct _SCSIWMILIB_CONTEXT {
|
||||||
} SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT;
|
} SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT;
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWmiDispatchFunction(
|
ScsiPortWmiDispatchFunction(
|
||||||
|
@ -189,7 +189,7 @@ ScsiPortWmiDispatchFunction(
|
||||||
#define ScsiPortWmiGetReturnStatus(RequestContext) \
|
#define ScsiPortWmiGetReturnStatus(RequestContext) \
|
||||||
((RequestContext)->ReturnStatus)
|
((RequestContext)->ReturnStatus)
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWmiPostProcess(
|
ScsiPortWmiPostProcess(
|
||||||
|
@ -197,7 +197,7 @@ ScsiPortWmiPostProcess(
|
||||||
_In_ UCHAR SrbStatus,
|
_In_ UCHAR SrbStatus,
|
||||||
_In_ ULONG BufferUsed);
|
_In_ ULONG BufferUsed);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWmiFireLogicalUnitEvent(
|
ScsiPortWmiFireLogicalUnitEvent(
|
||||||
|
|
|
@ -76,6 +76,7 @@ extern "C" {
|
||||||
#define SRB_FUNCTION_RELEASE_DEVICE 0x06
|
#define SRB_FUNCTION_RELEASE_DEVICE 0x06
|
||||||
#define SRB_FUNCTION_SHUTDOWN 0x07
|
#define SRB_FUNCTION_SHUTDOWN 0x07
|
||||||
#define SRB_FUNCTION_FLUSH 0x08
|
#define SRB_FUNCTION_FLUSH 0x08
|
||||||
|
#define SRB_FUNCTION_PROTOCOL_COMMAND 0x09
|
||||||
#define SRB_FUNCTION_ABORT_COMMAND 0x10
|
#define SRB_FUNCTION_ABORT_COMMAND 0x10
|
||||||
#define SRB_FUNCTION_RELEASE_RECOVERY 0x11
|
#define SRB_FUNCTION_RELEASE_RECOVERY 0x11
|
||||||
#define SRB_FUNCTION_RESET_BUS 0x12
|
#define SRB_FUNCTION_RESET_BUS 0x12
|
||||||
|
@ -86,6 +87,7 @@ extern "C" {
|
||||||
#define SRB_FUNCTION_WMI 0x17
|
#define SRB_FUNCTION_WMI 0x17
|
||||||
#define SRB_FUNCTION_LOCK_QUEUE 0x18
|
#define SRB_FUNCTION_LOCK_QUEUE 0x18
|
||||||
#define SRB_FUNCTION_UNLOCK_QUEUE 0x19
|
#define SRB_FUNCTION_UNLOCK_QUEUE 0x19
|
||||||
|
#define SRB_FUNCTION_QUIESCE_DEVICE 0x1a
|
||||||
#define SRB_FUNCTION_RESET_LOGICAL_UNIT 0x20
|
#define SRB_FUNCTION_RESET_LOGICAL_UNIT 0x20
|
||||||
#define SRB_FUNCTION_SET_LINK_TIMEOUT 0x21
|
#define SRB_FUNCTION_SET_LINK_TIMEOUT 0x21
|
||||||
#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED 0x22
|
#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED 0x22
|
||||||
|
@ -93,6 +95,11 @@ extern "C" {
|
||||||
#define SRB_FUNCTION_POWER 0x24
|
#define SRB_FUNCTION_POWER 0x24
|
||||||
#define SRB_FUNCTION_PNP 0x25
|
#define SRB_FUNCTION_PNP 0x25
|
||||||
#define SRB_FUNCTION_DUMP_POINTERS 0x26
|
#define SRB_FUNCTION_DUMP_POINTERS 0x26
|
||||||
|
#define SRB_FUNCTION_FREE_DUMP_POINTERS 0x27
|
||||||
|
#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK 0x28 // special value
|
||||||
|
#define SRB_FUNCTION_CRYPTO_OPERATION 0x29
|
||||||
|
#define SRB_FUNCTION_GET_DUMP_INFO 0x2a
|
||||||
|
#define SRB_FUNCTION_FREE_DUMP_INFO 0x2b
|
||||||
|
|
||||||
/* SCSI_REQUEST_BLOCK.SrbStatus constants */
|
/* SCSI_REQUEST_BLOCK.SrbStatus constants */
|
||||||
#define SRB_STATUS_PENDING 0x00
|
#define SRB_STATUS_PENDING 0x00
|
||||||
|
@ -123,6 +130,8 @@ extern "C" {
|
||||||
#define SRB_STATUS_ERROR_RECOVERY 0x23
|
#define SRB_STATUS_ERROR_RECOVERY 0x23
|
||||||
#define SRB_STATUS_NOT_POWERED 0x24
|
#define SRB_STATUS_NOT_POWERED 0x24
|
||||||
#define SRB_STATUS_LINK_DOWN 0x25
|
#define SRB_STATUS_LINK_DOWN 0x25
|
||||||
|
#define SRB_STATUS_INSUFFICIENT_RESOURCES 0x26
|
||||||
|
#define SRB_STATUS_THROTTLED_REQUEST 0x27
|
||||||
#define SRB_STATUS_INTERNAL_ERROR 0x30
|
#define SRB_STATUS_INTERNAL_ERROR 0x30
|
||||||
|
|
||||||
#define SRB_STATUS_QUEUE_FROZEN 0x40
|
#define SRB_STATUS_QUEUE_FROZEN 0x40
|
||||||
|
@ -144,6 +153,8 @@ extern "C" {
|
||||||
#define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100
|
#define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100
|
||||||
#define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200
|
#define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200
|
||||||
#define SRB_FLAGS_FREE_SENSE_BUFFER 0x00000400
|
#define SRB_FLAGS_FREE_SENSE_BUFFER 0x00000400
|
||||||
|
#define SRB_FLAGS_D3_PROCESSING 0x00000800
|
||||||
|
#define SRB_FLAGS_SEQUENTIAL_REQUIRED 0x00001000
|
||||||
#define SRB_FLAGS_IS_ACTIVE 0x00010000
|
#define SRB_FLAGS_IS_ACTIVE 0x00010000
|
||||||
#define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000
|
#define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000
|
||||||
#define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000
|
#define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000
|
||||||
|
@ -424,6 +435,228 @@ typedef struct _SCSI_PNP_REQUEST_BLOCK {
|
||||||
UCHAR Reserved4[16];
|
UCHAR Reserved4[16];
|
||||||
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
|
} SCSI_PNP_REQUEST_BLOCK, *PSCSI_PNP_REQUEST_BLOCK;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
#if defined(_WIN64)
|
||||||
|
#define SRB_ALIGN DECLSPEC_ALIGN(8)
|
||||||
|
#define POINTER_ALIGN DECLSPEC_ALIGN(8)
|
||||||
|
#else
|
||||||
|
#define SRB_ALIGN
|
||||||
|
#define POINTER_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum _SRBEXDATATYPE {
|
||||||
|
SrbExDataTypeUnknown = 0,
|
||||||
|
SrbExDataTypeBidirectional,
|
||||||
|
SrbExDataTypeScsiCdb16 = 0x40,
|
||||||
|
SrbExDataTypeScsiCdb32,
|
||||||
|
SrbExDataTypeScsiCdbVar,
|
||||||
|
SrbExDataTypeWmi = 0x60,
|
||||||
|
SrbExDataTypePower,
|
||||||
|
SrbExDataTypePnP,
|
||||||
|
SrbExDataTypeIoInfo = 0x80,
|
||||||
|
SrbExDataTypeMSReservedStart = 0xf0000000,
|
||||||
|
SrbExDataTypeReserved = 0xffffffff
|
||||||
|
} SRBEXDATATYPE, *PSRBEXDATATYPE;
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA {
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
ULONG Length;
|
||||||
|
_Field_size_bytes_(Length) UCHAR Data[ANYSIZE_ARRAY];
|
||||||
|
} SRBEX_DATA, *PSRBEX_DATA;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_BIDIRECTIONAL_LENGTH ((2 * sizeof(ULONG)) + sizeof(PVOID))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_BIDIRECTIONAL {
|
||||||
|
_Field_range_(SrbExDataTypeBidirectional, SrbExDataTypeBidirectional)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_BIDIRECTIONAL_LENGTH, SRBEX_DATA_BIDIRECTIONAL_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
ULONG DataInTransferLength;
|
||||||
|
ULONG Reserved1;
|
||||||
|
_Field_size_bytes_full_(DataInTransferLength)
|
||||||
|
PVOID POINTER_ALIGN DataInBuffer;
|
||||||
|
} SRBEX_DATA_BIDIRECTIONAL, *PSRBEX_DATA_BIDIRECTIONAL;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_SCSI_CDB16_LENGTH ((20 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16 {
|
||||||
|
_Field_range_(SrbExDataTypeScsiCdb16, SrbExDataTypeScsiCdb16)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_SCSI_CDB16_LENGTH, SRBEX_DATA_SCSI_CDB16_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR ScsiStatus;
|
||||||
|
UCHAR SenseInfoBufferLength;
|
||||||
|
UCHAR CdbLength;
|
||||||
|
UCHAR Reserved;
|
||||||
|
ULONG Reserved1;
|
||||||
|
_Field_size_bytes_full_(SenseInfoBufferLength)
|
||||||
|
PVOID POINTER_ALIGN SenseInfoBuffer;
|
||||||
|
UCHAR POINTER_ALIGN Cdb[16];
|
||||||
|
} SRBEX_DATA_SCSI_CDB16, *PSRBEX_DATA_SCSI_CDB16;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_SCSI_CDB32_LENGTH ((36 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32 {
|
||||||
|
_Field_range_(SrbExDataTypeScsiCdb32, SrbExDataTypeScsiCdb32)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_SCSI_CDB32_LENGTH, SRBEX_DATA_SCSI_CDB32_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR ScsiStatus;
|
||||||
|
UCHAR SenseInfoBufferLength;
|
||||||
|
UCHAR CdbLength;
|
||||||
|
UCHAR Reserved;
|
||||||
|
ULONG Reserved1;
|
||||||
|
_Field_size_bytes_full_(SenseInfoBufferLength)
|
||||||
|
PVOID POINTER_ALIGN SenseInfoBuffer;
|
||||||
|
UCHAR POINTER_ALIGN Cdb[32];
|
||||||
|
} SRBEX_DATA_SCSI_CDB32, *PSRBEX_DATA_SCSI_CDB32;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN ((4 * sizeof(UCHAR)) + (3 * sizeof(ULONG)) + sizeof(PVOID))
|
||||||
|
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX 0xffffffffUL
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB_VAR {
|
||||||
|
_Field_range_(SrbExDataTypeScsiCdbVar, SrbExDataTypeScsiCdbVar)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN, SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR ScsiStatus;
|
||||||
|
UCHAR SenseInfoBufferLength;
|
||||||
|
UCHAR Reserved[2];
|
||||||
|
ULONG CdbLength;
|
||||||
|
ULONG Reserved1[2];
|
||||||
|
_Field_size_bytes_full_(SenseInfoBufferLength)
|
||||||
|
PVOID POINTER_ALIGN SenseInfoBuffer;
|
||||||
|
_Field_size_bytes_full_(CdbLength)
|
||||||
|
UCHAR POINTER_ALIGN Cdb[ANYSIZE_ARRAY];
|
||||||
|
} SRBEX_DATA_SCSI_CDB_VAR, *PSRBEX_DATA_SCSI_CDB_VAR;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_WMI_LENGTH ((4 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_WMI {
|
||||||
|
_Field_range_(SrbExDataTypeWmi, SrbExDataTypeWmi)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_WMI_LENGTH, SRBEX_DATA_WMI_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR WMISubFunction;
|
||||||
|
UCHAR WMIFlags;
|
||||||
|
UCHAR Reserved[2];
|
||||||
|
ULONG Reserved1;
|
||||||
|
PVOID POINTER_ALIGN DataPath;
|
||||||
|
} SRBEX_DATA_WMI, *PSRBEX_DATA_WMI;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_POWER_LENGTH ((4 * sizeof(UCHAR)) + sizeof(STOR_DEVICE_POWER_STATE) + sizeof(STOR_POWER_ACTION))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_POWER {
|
||||||
|
_Field_range_(SrbExDataTypePower, SrbExDataTypePower)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_POWER_LENGTH, SRBEX_DATA_POWER_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR SrbPowerFlags;
|
||||||
|
UCHAR Reserved[3];
|
||||||
|
STOR_DEVICE_POWER_STATE DevicePowerState;
|
||||||
|
STOR_POWER_ACTION PowerAction;
|
||||||
|
} SRBEX_DATA_POWER, *PSRBEX_DATA_POWER;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_PNP_LENGTH ((4 * sizeof(UCHAR)) + sizeof(STOR_PNP_ACTION) + (2 * sizeof(ULONG)))
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_PNP {
|
||||||
|
_Field_range_(SrbExDataTypePnP, SrbExDataTypePnP)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_PNP_LENGTH, SRBEX_DATA_PNP_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
UCHAR PnPSubFunction;
|
||||||
|
UCHAR Reserved[3];
|
||||||
|
STOR_PNP_ACTION PnPAction;
|
||||||
|
ULONG SrbPnPFlags;
|
||||||
|
ULONG Reserved1;
|
||||||
|
} SRBEX_DATA_PNP, *PSRBEX_DATA_PNP;
|
||||||
|
|
||||||
|
#define SRBEX_DATA_IO_INFO_LENGTH ((5 * sizeof(ULONG)) + (4 * sizeof(UCHAR)))
|
||||||
|
|
||||||
|
#define REQUEST_INFO_NO_CACHE_FLAG 0x00000001
|
||||||
|
#define REQUEST_INFO_PAGING_IO_FLAG 0x00000002
|
||||||
|
#define REQUEST_INFO_SEQUENTIAL_IO_FLAG 0x00000004
|
||||||
|
#define REQUEST_INFO_TEMPORARY_FLAG 0x00000008
|
||||||
|
#define REQUEST_INFO_WRITE_THROUGH_FLAG 0x00000010
|
||||||
|
#define REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG 0x00000020
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
|
||||||
|
|
||||||
|
#define REQUEST_INFO_NO_FILE_OBJECT_FLAG 0x00000040
|
||||||
|
#define REQUEST_INFO_VOLSNAP_IO_FLAG 0x00000080
|
||||||
|
#define REQUEST_INFO_STREAM_FLAG 0x00000100
|
||||||
|
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_WINTHRESHOLD) */
|
||||||
|
|
||||||
|
#define REQUEST_INFO_VALID_CACHEPRIORITY_FLAG 0x80000000
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _SRBEX_DATA_IO_INFO {
|
||||||
|
_Field_range_(SrbExDataTypeIoInfo, SrbExDataTypeIoInfo)
|
||||||
|
SRBEXDATATYPE Type;
|
||||||
|
_Field_range_(SRBEX_DATA_IO_INFO_LENGTH, SRBEX_DATA_IO_INFO_LENGTH)
|
||||||
|
ULONG Length;
|
||||||
|
ULONG Flags;
|
||||||
|
ULONG Key;
|
||||||
|
ULONG RWLength;
|
||||||
|
BOOLEAN IsWriteRequest;
|
||||||
|
UCHAR CachePriority;
|
||||||
|
UCHAR Reserved[2];
|
||||||
|
ULONG Reserved1[2];
|
||||||
|
} SRBEX_DATA_IO_INFO, *PSRBEX_DATA_IO_INFO;
|
||||||
|
|
||||||
|
#define SRB_SIGNATURE 0x53524258
|
||||||
|
#define STORAGE_REQUEST_BLOCK_VERSION_1 0x1
|
||||||
|
|
||||||
|
typedef struct SRB_ALIGN _STORAGE_REQUEST_BLOCK_HEADER {
|
||||||
|
USHORT Length;
|
||||||
|
_Field_range_(SRB_FUNCTION_STORAGE_REQUEST_BLOCK, SRB_FUNCTION_STORAGE_REQUEST_BLOCK)
|
||||||
|
UCHAR Function;
|
||||||
|
UCHAR SrbStatus;
|
||||||
|
} STORAGE_REQUEST_BLOCK_HEADER, *PSTORAGE_REQUEST_BLOCK_HEADER;
|
||||||
|
|
||||||
|
typedef _Struct_size_bytes_(SrbLength) struct SRB_ALIGN _STORAGE_REQUEST_BLOCK {
|
||||||
|
USHORT Length;
|
||||||
|
_Field_range_(SRB_FUNCTION_STORAGE_REQUEST_BLOCK, SRB_FUNCTION_STORAGE_REQUEST_BLOCK)
|
||||||
|
UCHAR Function;
|
||||||
|
UCHAR SrbStatus;
|
||||||
|
UCHAR ReservedUchar[4];
|
||||||
|
_Field_range_(SRB_SIGNATURE, SRB_SIGNATURE)
|
||||||
|
ULONG Signature;
|
||||||
|
_Field_range_(STORAGE_REQUEST_BLOCK_VERSION_1, STORAGE_REQUEST_BLOCK_VERSION_1)
|
||||||
|
ULONG Version;
|
||||||
|
ULONG SrbLength;
|
||||||
|
ULONG SrbFunction;
|
||||||
|
ULONG SrbFlags;
|
||||||
|
ULONG ReservedUlong;
|
||||||
|
ULONG RequestTag;
|
||||||
|
USHORT RequestPriority;
|
||||||
|
USHORT RequestAttribute;
|
||||||
|
ULONG TimeOutValue;
|
||||||
|
ULONG SystemStatus;
|
||||||
|
ULONG ZeroGuard1;
|
||||||
|
_Field_range_(sizeof(STORAGE_REQUEST_BLOCK), SrbLength - sizeof(STOR_ADDRESS))
|
||||||
|
ULONG AddressOffset;
|
||||||
|
ULONG NumSrbExData;
|
||||||
|
ULONG DataTransferLength;
|
||||||
|
_Field_size_bytes_full_(DataTransferLength)
|
||||||
|
PVOID POINTER_ALIGN DataBuffer;
|
||||||
|
PVOID POINTER_ALIGN ZeroGuard2;
|
||||||
|
PVOID POINTER_ALIGN OriginalRequest;
|
||||||
|
PVOID POINTER_ALIGN ClassContext;
|
||||||
|
PVOID POINTER_ALIGN PortContext;
|
||||||
|
PVOID POINTER_ALIGN MiniportContext;
|
||||||
|
struct _STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
|
||||||
|
_At_buffer_(SrbExDataOffset, _Iter_, NumSrbExData, _Field_range_(0, SrbLength - sizeof(SRBEX_DATA)))
|
||||||
|
_Field_size_(NumSrbExData)
|
||||||
|
ULONG SrbExDataOffset[ANYSIZE_ARRAY];
|
||||||
|
} STORAGE_REQUEST_BLOCK, *PSTORAGE_REQUEST_BLOCK;
|
||||||
|
|
||||||
|
#define SRB_TYPE_SCSI_REQUEST_BLOCK 0
|
||||||
|
#define SRB_TYPE_STORAGE_REQUEST_BLOCK 1
|
||||||
|
|
||||||
|
#define STORAGE_ADDRESS_TYPE_BTL8 0
|
||||||
|
#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
|
||||||
|
|
||||||
typedef
|
typedef
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
|
@ -536,12 +769,12 @@ typedef struct _HW_INITIALIZATION_DATA {
|
||||||
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
|
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
|
||||||
|
|
||||||
#if defined(_NTDDK_)
|
#if defined(_NTDDK_)
|
||||||
#define SCSIPORTAPI
|
#define SCSIPORT_API
|
||||||
#else
|
#else
|
||||||
#define SCSIPORTAPI DECLSPEC_IMPORT
|
#define SCSIPORT_API DECLSPEC_IMPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortCompleteRequest(
|
ScsiPortCompleteRequest(
|
||||||
|
@ -552,7 +785,7 @@ ScsiPortCompleteRequest(
|
||||||
_In_ UCHAR SrbStatus);
|
_In_ UCHAR SrbStatus);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortConvertPhysicalAddressToUlong(
|
ScsiPortConvertPhysicalAddressToUlong(
|
||||||
|
@ -562,19 +795,19 @@ ScsiPortConvertPhysicalAddressToUlong(
|
||||||
#define ScsiPortConvertPhysicalAddressToULongPtr(Address) ((ULONG_PTR)((Address).QuadPart))
|
#define ScsiPortConvertPhysicalAddressToULongPtr(Address) ((ULONG_PTR)((Address).QuadPart))
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
SCSI_PHYSICAL_ADDRESS
|
SCSI_PHYSICAL_ADDRESS
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortConvertUlongToPhysicalAddress(
|
ScsiPortConvertUlongToPhysicalAddress(
|
||||||
_In_ ULONG_PTR UlongAddress);
|
_In_ ULONG_PTR UlongAddress);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortFlushDma(
|
ScsiPortFlushDma(
|
||||||
_In_ PVOID DeviceExtension);
|
_In_ PVOID DeviceExtension);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortFreeDeviceBase(
|
ScsiPortFreeDeviceBase(
|
||||||
|
@ -582,7 +815,7 @@ ScsiPortFreeDeviceBase(
|
||||||
_In_ PVOID MappedAddress);
|
_In_ PVOID MappedAddress);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetBusData(
|
ScsiPortGetBusData(
|
||||||
|
@ -594,7 +827,7 @@ ScsiPortGetBusData(
|
||||||
_In_ ULONG Length);
|
_In_ ULONG Length);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetDeviceBase(
|
ScsiPortGetDeviceBase(
|
||||||
|
@ -606,7 +839,7 @@ ScsiPortGetDeviceBase(
|
||||||
_In_ BOOLEAN InIoSpace);
|
_In_ BOOLEAN InIoSpace);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetLogicalUnit(
|
ScsiPortGetLogicalUnit(
|
||||||
|
@ -616,7 +849,7 @@ ScsiPortGetLogicalUnit(
|
||||||
_In_ UCHAR Lun);
|
_In_ UCHAR Lun);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
SCSI_PHYSICAL_ADDRESS
|
SCSI_PHYSICAL_ADDRESS
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetPhysicalAddress(
|
ScsiPortGetPhysicalAddress(
|
||||||
|
@ -626,7 +859,7 @@ ScsiPortGetPhysicalAddress(
|
||||||
_Out_ ULONG *Length);
|
_Out_ ULONG *Length);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PSCSI_REQUEST_BLOCK
|
PSCSI_REQUEST_BLOCK
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetSrb(
|
ScsiPortGetSrb(
|
||||||
|
@ -637,7 +870,7 @@ ScsiPortGetSrb(
|
||||||
_In_ LONG QueueTag);
|
_In_ LONG QueueTag);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetUncachedExtension(
|
ScsiPortGetUncachedExtension(
|
||||||
|
@ -646,7 +879,7 @@ ScsiPortGetUncachedExtension(
|
||||||
_In_ ULONG NumberOfBytes);
|
_In_ ULONG NumberOfBytes);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortGetVirtualAddress(
|
ScsiPortGetVirtualAddress(
|
||||||
|
@ -655,7 +888,7 @@ ScsiPortGetVirtualAddress(
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortInitialize(
|
ScsiPortInitialize(
|
||||||
|
@ -664,7 +897,7 @@ ScsiPortInitialize(
|
||||||
_In_ struct _HW_INITIALIZATION_DATA *HwInitializationData,
|
_In_ struct _HW_INITIALIZATION_DATA *HwInitializationData,
|
||||||
_In_ PVOID HwContext);
|
_In_ PVOID HwContext);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortIoMapTransfer(
|
ScsiPortIoMapTransfer(
|
||||||
|
@ -673,7 +906,7 @@ ScsiPortIoMapTransfer(
|
||||||
_In_ PVOID LogicalAddress,
|
_In_ PVOID LogicalAddress,
|
||||||
_In_ ULONG Length);
|
_In_ ULONG Length);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortLogError(
|
ScsiPortLogError(
|
||||||
|
@ -685,7 +918,7 @@ ScsiPortLogError(
|
||||||
_In_ ULONG ErrorCode,
|
_In_ ULONG ErrorCode,
|
||||||
_In_ ULONG UniqueId);
|
_In_ ULONG UniqueId);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
__cdecl
|
__cdecl
|
||||||
ScsiPortNotification(
|
ScsiPortNotification(
|
||||||
|
@ -693,14 +926,14 @@ ScsiPortNotification(
|
||||||
_In_ PVOID HwDeviceExtension,
|
_In_ PVOID HwDeviceExtension,
|
||||||
...);
|
...);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortQuerySystemTime(
|
ScsiPortQuerySystemTime(
|
||||||
_Out_ PLARGE_INTEGER CurrentTime);
|
_Out_ PLARGE_INTEGER CurrentTime);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortSetBusDataByOffset(
|
ScsiPortSetBusDataByOffset(
|
||||||
|
@ -712,14 +945,14 @@ ScsiPortSetBusDataByOffset(
|
||||||
_In_ ULONG Offset,
|
_In_ ULONG Offset,
|
||||||
_In_ ULONG Length);
|
_In_ ULONG Length);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortStallExecution(
|
ScsiPortStallExecution(
|
||||||
_In_ ULONG Delay);
|
_In_ ULONG Delay);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortValidateRange(
|
ScsiPortValidateRange(
|
||||||
|
@ -730,7 +963,7 @@ ScsiPortValidateRange(
|
||||||
_In_ ULONG NumberOfBytes,
|
_In_ ULONG NumberOfBytes,
|
||||||
_In_ BOOLEAN InIoSpace);
|
_In_ BOOLEAN InIoSpace);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
__cdecl
|
__cdecl
|
||||||
ScsiDebugPrint(
|
ScsiDebugPrint(
|
||||||
|
@ -777,27 +1010,27 @@ ScsiDebugPrint(
|
||||||
#else
|
#else
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
UCHAR
|
UCHAR
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortUchar(
|
ScsiPortReadPortUchar(
|
||||||
_In_ PUCHAR Port);
|
_In_ PUCHAR Port);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortUlong(
|
ScsiPortReadPortUlong(
|
||||||
_In_ PULONG Port);
|
_In_ PULONG Port);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
USHORT
|
USHORT
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortUshort(
|
ScsiPortReadPortUshort(
|
||||||
_In_ PUSHORT Port);
|
_In_ PUSHORT Port);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortBufferUchar(
|
ScsiPortReadPortBufferUchar(
|
||||||
|
@ -805,7 +1038,7 @@ ScsiPortReadPortBufferUchar(
|
||||||
_In_ PUCHAR Buffer,
|
_In_ PUCHAR Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortBufferUlong(
|
ScsiPortReadPortBufferUlong(
|
||||||
|
@ -813,7 +1046,7 @@ ScsiPortReadPortBufferUlong(
|
||||||
_In_ PULONG Buffer,
|
_In_ PULONG Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadPortBufferUshort(
|
ScsiPortReadPortBufferUshort(
|
||||||
|
@ -822,27 +1055,27 @@ ScsiPortReadPortBufferUshort(
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
UCHAR
|
UCHAR
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterUchar(
|
ScsiPortReadRegisterUchar(
|
||||||
_In_ PUCHAR Register);
|
_In_ PUCHAR Register);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
ULONG
|
ULONG
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterUlong(
|
ScsiPortReadRegisterUlong(
|
||||||
_In_ PULONG Register);
|
_In_ PULONG Register);
|
||||||
|
|
||||||
_Must_inspect_result_
|
_Must_inspect_result_
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
USHORT
|
USHORT
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterUshort(
|
ScsiPortReadRegisterUshort(
|
||||||
_In_ PUSHORT Register);
|
_In_ PUSHORT Register);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterBufferUchar(
|
ScsiPortReadRegisterBufferUchar(
|
||||||
|
@ -850,7 +1083,7 @@ ScsiPortReadRegisterBufferUchar(
|
||||||
_In_ PUCHAR Buffer,
|
_In_ PUCHAR Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterBufferUlong(
|
ScsiPortReadRegisterBufferUlong(
|
||||||
|
@ -858,7 +1091,7 @@ ScsiPortReadRegisterBufferUlong(
|
||||||
_In_ PULONG Buffer,
|
_In_ PULONG Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortReadRegisterBufferUshort(
|
ScsiPortReadRegisterBufferUshort(
|
||||||
|
@ -866,28 +1099,28 @@ ScsiPortReadRegisterBufferUshort(
|
||||||
_In_ PUSHORT Buffer,
|
_In_ PUSHORT Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortUchar(
|
ScsiPortWritePortUchar(
|
||||||
_In_ PUCHAR Port,
|
_In_ PUCHAR Port,
|
||||||
_In_ UCHAR Value);
|
_In_ UCHAR Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortUlong(
|
ScsiPortWritePortUlong(
|
||||||
_In_ PULONG Port,
|
_In_ PULONG Port,
|
||||||
_In_ ULONG Value);
|
_In_ ULONG Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortUshort(
|
ScsiPortWritePortUshort(
|
||||||
_In_ PUSHORT Port,
|
_In_ PUSHORT Port,
|
||||||
_In_ USHORT Value);
|
_In_ USHORT Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortBufferUchar(
|
ScsiPortWritePortBufferUchar(
|
||||||
|
@ -895,7 +1128,7 @@ ScsiPortWritePortBufferUchar(
|
||||||
_In_ PUCHAR Buffer,
|
_In_ PUCHAR Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortBufferUlong(
|
ScsiPortWritePortBufferUlong(
|
||||||
|
@ -903,7 +1136,7 @@ ScsiPortWritePortBufferUlong(
|
||||||
_In_ PULONG Buffer,
|
_In_ PULONG Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWritePortBufferUshort(
|
ScsiPortWritePortBufferUshort(
|
||||||
|
@ -911,28 +1144,28 @@ ScsiPortWritePortBufferUshort(
|
||||||
_In_ PUSHORT Buffer,
|
_In_ PUSHORT Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterUchar(
|
ScsiPortWriteRegisterUchar(
|
||||||
_In_ PUCHAR Register,
|
_In_ PUCHAR Register,
|
||||||
_In_ UCHAR Value);
|
_In_ UCHAR Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterUlong(
|
ScsiPortWriteRegisterUlong(
|
||||||
_In_ PULONG Register,
|
_In_ PULONG Register,
|
||||||
_In_ ULONG Value);
|
_In_ ULONG Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterUshort(
|
ScsiPortWriteRegisterUshort(
|
||||||
_In_ PUSHORT Register,
|
_In_ PUSHORT Register,
|
||||||
_In_ USHORT Value);
|
_In_ USHORT Value);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterBufferUchar(
|
ScsiPortWriteRegisterBufferUchar(
|
||||||
|
@ -940,7 +1173,7 @@ ScsiPortWriteRegisterBufferUchar(
|
||||||
_In_ PUCHAR Buffer,
|
_In_ PUCHAR Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterBufferUlong(
|
ScsiPortWriteRegisterBufferUlong(
|
||||||
|
@ -948,7 +1181,7 @@ ScsiPortWriteRegisterBufferUlong(
|
||||||
_In_ PULONG Buffer,
|
_In_ PULONG Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortWriteRegisterBufferUshort(
|
ScsiPortWriteRegisterBufferUshort(
|
||||||
|
@ -956,7 +1189,7 @@ ScsiPortWriteRegisterBufferUshort(
|
||||||
_In_ PUSHORT Buffer,
|
_In_ PUSHORT Buffer,
|
||||||
_In_ ULONG Count);
|
_In_ ULONG Count);
|
||||||
|
|
||||||
SCSIPORTAPI
|
SCSIPORT_API
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
ScsiPortMoveMemory(
|
ScsiPortMoveMemory(
|
||||||
|
|
Loading…
Reference in a new issue