ReactOS 0.4.16-dev-1946-g52006dd
sptilib.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Storage Stack
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Public header of the ATA and SCSI Pass Through Interface for storage drivers
5 * COPYRIGHT: Copyright 2025 Dmitry Borisov <di.sean@protonmail.com>
6 */
7
8#pragma once
9
15#define ATA_PASSTHROUGH_PROTOCOL_HARDWARE_RESET 0x0
16#define ATA_PASSTHROUGH_PROTOCOL_SOFTWARE_RESET 0x1
17#define ATA_PASSTHROUGH_PROTOCOL_NON_DATA 0x3
18#define ATA_PASSTHROUGH_PROTOCOL_PIO_DATA_IN 0x4
19#define ATA_PASSTHROUGH_PROTOCOL_PIO_DATA_OUT 0x5
20#define ATA_PASSTHROUGH_PROTOCOL_DMA 0x6
21#define ATA_PASSTHROUGH_PROTOCOL_DEVICE_DIAG 0x8
22#define ATA_PASSTHROUGH_PROTOCOL_DEVICE_RESET 0x9
23#define ATA_PASSTHROUGH_PROTOCOL_UDMA_DATA_IN 0xA
24#define ATA_PASSTHROUGH_PROTOCOL_UDMA_DATA_OUT 0xB
25#define ATA_PASSTHROUGH_PROTOCOL_NCQ 0xC
26#define ATA_PASSTHROUGH_PROTOCOL_RETURN_RESPONSE 0xF
33#define SCSI_SENSEQ_ATA_PASS_THROUGH_INFORMATION_AVAILABLE 0x1D
34
53CODE_SEG("PAGE")
59 _In_ ULONG MaximumPhysicalPages);
60
79CODE_SEG("PAGE")
85 _In_ ULONG MaximumPhysicalPages);
#define CODE_SEG(...)
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
_In_opt_ WDFREQUEST _In_ ULONG MaximumTransferLength
Definition: scratch.h:54
NTSTATUS SptiHandleAtaPassthru(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp, _In_ ULONG MaximumTransferLength, _In_ ULONG MaximumPhysicalPages)
Handler for the IOCTL_ATA_PASS_THROUGH and IOCTL_ATA_PASS_THROUGH_DIRECT requests.
Definition: sptilib.c:782
NTSTATUS SptiHandleScsiPassthru(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp, _In_ ULONG MaximumTransferLength, _In_ ULONG MaximumPhysicalPages)
Handler for the IOCTL_SCSI_PASS_THROUGH and IOCTL_SCSI_PASS_THROUGH_DIRECT requests.
Definition: sptilib.c:888
uint32_t ULONG
Definition: typedefs.h:59
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061