37#ifndef __UNIATA_IO_CONTROL_CODES__H__
38#define __UNIATA_IO_CONTROL_CODES__H__
48#define AHCI_MAX_PORT 32
49#define IDE_MAX_CHAN 16
51#define IDE_MAX_LUN_PER_CHAN 2
52#define IDE_MAX_LUN (AHCI_MAX_PORT*IDE_MAX_LUN_PER_CHAN)
54#define MAX_QUEUE_STAT 8
56#define UNIATA_COMM_PORT_VENDOR_STR "UNIATA " "Management Port " UNIATA_VER_STR
60#define IOCTL_SCSI_MINIPORT_UNIATA_FIND_DEVICES ((FILE_DEVICE_SCSI << 16) + 0x09a0)
61#define IOCTL_SCSI_MINIPORT_UNIATA_DELETE_DEVICE ((FILE_DEVICE_SCSI << 16) + 0x09a1)
62#define IOCTL_SCSI_MINIPORT_UNIATA_SET_MAX_MODE ((FILE_DEVICE_SCSI << 16) + 0x09a2)
63#define IOCTL_SCSI_MINIPORT_UNIATA_GET_MODE ((FILE_DEVICE_SCSI << 16) + 0x09a3)
64#define IOCTL_SCSI_MINIPORT_UNIATA_ADAPTER_INFO ((FILE_DEVICE_SCSI << 16) + 0x09a4)
66#define IOCTL_SCSI_MINIPORT_UNIATA_RESETBB ((FILE_DEVICE_SCSI << 16) + 0x09a5)
67#define IOCTL_SCSI_MINIPORT_UNIATA_RESET_DEVICE ((FILE_DEVICE_SCSI << 16) + 0x09a6)
68#define IOCTL_SCSI_MINIPORT_UNIATA_REG_IO ((FILE_DEVICE_SCSI << 16) + 0x09a7)
69#define IOCTL_SCSI_MINIPORT_UNIATA_GET_VERSION ((FILE_DEVICE_SCSI << 16) + 0x09a8)
75#define UNIATA_REMOVE_FLAGS_HIDE 0x01
76#define UNIATA_ADD_FLAGS_UNHIDE 0x01
195#ifndef ATA_FLAGS_DRDY_REQUIRED
220#define ATA_FLAGS_DRDY_REQUIRED 0x01
221#define ATA_FLAGS_DATA_OUT 0x02
222#define ATA_FLAGS_DATA_IN 0x04
223#define ATA_FLAGS_48BIT_COMMAND 0x08
226#define ATA_FLAGS_USE_DMA 0x10
227#define ATA_FLAGS_NO_MULTIPLE 0x20
253#define UNIATA_SPTI_EX_SND 0x00
254#define UNIATA_SPTI_EX_RCV 0x01
255#define UNIATA_SPTI_EX_LBA48 0x08
258#define UNIATA_SPTI_EX_USE_DMA 0x10
261#define UNIATA_SPTI_EX_SPEC_TO (ATA_FLAGS_DATA_OUT | ATA_FLAGS_DATA_IN)
GLdouble GLdouble GLdouble r
enum _INTERFACE_TYPE * PINTERFACE_TYPE
enum _INTERFACE_TYPE INTERFACE_TYPE
BOOLEAN ChanHeaderLengthValid
ULONG OrigAdapterInterfaceType
ULONG AdapterInterfaceType
ULONG WaitForPhysicalLink
UCHAR PreviousTaskFile[8]
LONGLONG QueueStat[MAX_QUEUE_STAT]
LONGLONG TryReorderHeadCount
LONGLONG TryReorderTailCount
struct _PCI_SLOT_NUMBER::@4018::@4019 bits
union _PCI_SLOT_NUMBER::@4018 u
SCSI_PASS_THROUGH_DIRECT sptd
struct _CHANINFO CHANINFO
struct _ATA_PASS_THROUGH_DIRECT ATA_PASS_THROUGH_DIRECT
struct _IDEREGS_EX IDEREGS_EX
struct _ADAPTERINFO ADAPTERINFO
struct _IDEREGS_EX * LPIDEREGS_EX
struct _UNIATA_CTL UNIATA_CTL
struct _ATA_PASS_THROUGH_DIRECT * PATA_PASS_THROUGH_DIRECT
struct _GETTRANSFERMODE * PGETTRANSFERMODE
struct _UNIATA_CTL * PUNIATA_CTL
struct _GETTRANSFERMODE GETTRANSFERMODE
struct _UNIATA_REG_IO_HDR UNIATA_REG_IO_HDR
struct _UNIATA_REG_IO_HDR * PUNIATA_REG_IO_HDR
struct _IDEREGS_EX * PIDEREGS_EX
struct _CHANINFO * PCHANINFO
struct _SETTRANSFERMODE * PSETTRANSFERMODE
struct _SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER
struct _SCSI_PASS_THROUGH_WITH_BUFFERS SCSI_PASS_THROUGH_WITH_BUFFERS
struct _ADDREMOVEDEV * PADDREMOVEDEV
struct _ADDREMOVEDEV ADDREMOVEDEV
struct _SCSI_PASS_THROUGH_WITH_BUFFERS * PSCSI_PASS_THROUGH_WITH_BUFFERS
struct _ADAPTERINFO * PADAPTERINFO
struct _UNIATA_REG_IO UNIATA_REG_IO
struct _GETDRVVERSION * PGETDRVVERSION
struct _SETTRANSFERMODE SETTRANSFERMODE
struct _GETDRVVERSION GETDRVVERSION
struct _UNIATA_REG_IO * PUNIATA_REG_IO
struct _SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER * PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Reserved_ PVOID Reserved
struct _PCI_SLOT_NUMBER * PPCI_SLOT_NUMBER
struct _PCI_SLOT_NUMBER PCI_SLOT_NUMBER