SCSIPORT_API
VOID
-DDKCDECLAPI
+__cdecl
ScsiDebugPrint(
ULONG DebugPrintLevel,
PCCHAR DebugMessage,
ULONG DeviceNumber
);
+/*#define IdeHardReset(BaseIoAddress,result) \
+{\
+ UCHAR statusByte;\
+ ULONG i;\
+ SelectDrive(BaseIoAddress,DeviceNumber); \
+ AtapiWritePort1(&BaseIoAddress->AltStatus,IDE_DC_DISABLE_INTERRUPTS | IDE_DC_RESET_CONTROLLER );\
+ ScsiPortStallExecution(50 * 1000);\
+ AtapiWritePort1(&BaseIoAddress->AltStatus,IDE_DC_REENABLE_CONTROLLER);\
+ 5 seconds for reset \
+ for (i = 0; i < 1000 * (1+11); i++) {\
+ statusByte = AtapiReadPort1(&BaseIoAddress->AltStatus);\
+ if (statusByte != IDE_STATUS_IDLE && statusByte != IDE_STATUS_SUCCESS) {\
+ ScsiPortStallExecution((i<1000) ? 5 : 500);\
+ } else {\
+ break;\
+ }\
+ }\
+ KdPrint2((PRINT_PREFIX "IdeHardReset: Status %x\n", statusByte)); \
+ if (i == 1000*1000) {\
+ result = FALSE;\
+ }\
+ result = TRUE;\
+}*/
+
#endif //USER_MODE
#define IS_RDP(OperationCode)\
#ifndef USER_MODE
PSCSI_REQUEST_BLOCK
+NTAPI
BuildMechanismStatusSrb (
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb
);
PSCSI_REQUEST_BLOCK
+NTAPI
BuildRequestSenseSrb (
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb
);
VOID
+NTAPI
AtapiHwInitializeChanger (
IN PVOID HwDeviceExtension,
IN ULONG TargetId,
);
ULONG
+NTAPI
AtapiSendCommand(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb,
);
ULONG
+NTAPI
IdeSendCommand(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb,
#define AtapiCopyMemory RtlCopyMemory
VOID
+NTAPI
AtapiHexToString (
ULONG Value,
PCHAR *Buffer
#define AtapiStringCmp(s1, s2, n) _strnicmp(s1, s2, n)
BOOLEAN
+NTAPI
AtapiInterrupt(
IN PVOID HwDeviceExtension
);
BOOLEAN
+NTAPI
AtapiInterrupt__(
IN PVOID HwDeviceExtension,
IN UCHAR c
);
BOOLEAN
+NTAPI
AtapiHwInitialize(
IN PVOID HwDeviceExtension
);
ULONG
+NTAPI
IdeBuildSenseBuffer(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb
);
VOID
+NTAPI
IdeMediaStatus(
IN BOOLEAN EnableMSN,
IN PVOID HwDeviceExtension,
IN UCHAR Channel
);
-ULONG DDKAPI
+ULONG NTAPI
AtapiFindController(
IN PVOID HwDeviceExtension,
IN PVOID Context,
);
ULONG
+NTAPI
AtapiParseArgumentString(
- IN PCHAR String,
- IN PCHAR KeyWord
+ IN PCCH String,
+ IN PCCH KeyWord
);
BOOLEAN
+NTAPI
IssueIdentify(
IN PVOID HwDeviceExtension,
IN ULONG DeviceNumber,
);
BOOLEAN
+NTAPI
SetDriveParameters(
IN PVOID HwDeviceExtension,
IN ULONG DeviceNumber,
);
ULONG
+NTAPI
CheckDevice(
IN PVOID HwDeviceExtension,
IN ULONG Channel,
#define UNIATA_FIND_DEV_UNHIDE 0x01
BOOLEAN
+NTAPI
FindDevices(
IN PVOID HwDeviceExtension,
IN ULONG Flags,
#ifndef USER_MODE
BOOLEAN
+NTAPI
AtapiResetController(
IN PVOID HwDeviceExtension,
IN ULONG PathId
);
BOOLEAN
+NTAPI
AtapiStartIo(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb
);
BOOLEAN
+NTAPI
AtapiStartIo__(
IN PVOID HwDeviceExtension,
IN PSCSI_REQUEST_BLOCK Srb,
);
extern UCHAR
+NTAPI
AtaCommand48(
// IN PVOID HwDeviceExtension,
IN struct _HW_DEVICE_EXTENSION* deviceExtension,
);
extern UCHAR
+NTAPI
AtaCommand(
// IN PVOID HwDeviceExtension,
IN struct _HW_DEVICE_EXTENSION* deviceExtension,
IN UCHAR command,
IN USHORT cylinder,
IN UCHAR head,
- IN UCHAR sector,
+ IN UCHAR sector,
IN UCHAR count,
IN UCHAR feature,
IN ULONG flags
);
extern LONG
+NTAPI
AtaPioMode(PIDENTIFY_DATA2 ident);
extern LONG
+NTAPI
AtaWmode(PIDENTIFY_DATA2 ident);
extern LONG
+NTAPI
AtaUmode(PIDENTIFY_DATA2 ident);
extern VOID
+NTAPI
AtapiDpcDispatch(
IN PKDPC Dpc,
IN PVOID DeferredContext,
IN PVOID SystemArgument2
);
-
-//#define AtaCommand(de, devn, chan, cmd, cyl, hd, sec, cnt, feat, flg)
+//#define AtaCommand(de, devn, chan, cmd, cyl, hd, sec, cnt, feat, flg)
extern LONG
+NTAPI
AtaPio2Mode(LONG pio);
extern LONG
+NTAPI
AtaPioMode(PIDENTIFY_DATA2 ident);
extern VOID
+NTAPI
AtapiEnableInterrupts(
IN PVOID HwDeviceExtension,
IN ULONG c
);
extern VOID
+NTAPI
AtapiDisableInterrupts(
IN PVOID HwDeviceExtension,
IN ULONG c
#define IOMODE_NOT_SPECIFIED (0xffffffffL)
extern ULONG
+NTAPI
AtapiRegCheckDevValue(
IN PVOID HwDeviceExtension,
IN ULONG chan,
IN ULONG dev,
- IN PWSTR Name,
+ IN PCWSTR Name,
IN ULONG Default
);
extern ULONG
+NTAPI
AtapiRegCheckParameterValue(
IN PVOID HwDeviceExtension,
- IN PWSTR PathSuffix,
- IN PWSTR Name,
+ IN PCWSTR PathSuffix,
+ IN PCWSTR Name,
IN ULONG Default
);
-extern ULONG g_LogToDisplay;
+extern ULONG g_LogToDisplay;
extern "C"
VOID
_cdecl
_PrintNtConsole(
- PCHAR DebugMessage,
+ PCCH DebugMessage,
...
);
VOID
+NTAPI
UniataInitMapBM(
IN struct _HW_DEVICE_EXTENSION* deviceExtension,
IN struct _IDE_BUSMASTER_REGISTERS* BaseIoAddressBM_0,
);
VOID
+NTAPI
UniataInitMapBase(
IN struct _HW_CHANNEL* chan,
IN PIDE_REGISTERS_1 BaseIoAddress1,
);
VOID
+NTAPI
UniataInitSyncBaseIO(
IN struct _HW_CHANNEL* chan
);
);
VOID
+NTAPI
UniataDumpATARegs(
IN struct _HW_CHANNEL* chan
);
ULONG
+NTAPI
EncodeVendorStr(
OUT PWCHAR Buffer,
IN PUCHAR Str,
);
ULONGLONG
+NTAPI
UniAtaCalculateLBARegsBack(
struct _HW_LU_EXTENSION* LunExt,
ULONGLONG lba
);
BOOLEAN
+NTAPI
UniataAnybodyHome(
IN PVOID HwDeviceExtension,
IN ULONG Channel,