}
#endif
-static __inline VOID SetReadDataPort(ULONG Port)
+static __inline VOID SetReadDataPort(ULONG_PTR Port)
{
IsaPnPReadPort = (PUCHAR)Port;
WriteUchar(0x00, (UCHAR) (Port >> 2));
#define READ_DATA_PORT_STEP 32 /* Minimum is 4 */
-static ULONG FindNextReadPort(VOID)
+static ULONG_PTR FindNextReadPort(VOID)
{
- ULONG Port;
+ ULONG_PTR Port;
- Port = (ULONG)IsaPnPReadPort;
+ Port = (ULONG_PTR)IsaPnPReadPort;
while (TRUE) {
static BOOLEAN IsolateReadDataPortSelect(VOID)
{
- ULONG Port;
+ ULONG_PTR Port;
SendWait();
SendKey();
DPRINT("Called\n");
- IsaPnPReadPort = (PUCHAR)ISAPNP_MIN_READ_PORT;
+ IsaPnPReadPort = (PUCHAR)(ISAPNP_MIN_READ_PORT - READ_DATA_PORT_STEP);
if (!IsolateReadDataPortSelect()) {
DPRINT("Could not set read data port\n");
return 0;
KeStallExecutionProcessor(250);
iteration++;
SendWake(0x00);
- SetReadDataPort((ULONG)IsaPnPReadPort);
+ SetReadDataPort((ULONG_PTR)IsaPnPReadPort);
KeStallExecutionProcessor(1000);
WriteAddress(0x01);
KeStallExecutionProcessor(1000);
goto next;
}
if (iteration == 1) {
- IsaPnPReadPort += READ_DATA_PORT_STEP;
if (!IsolateReadDataPortSelect()) {
DPRINT("Could not set read data port\n");
return 0;
do {
Status = BuildResourceList(LogicalDevice, p, Priority);
if (NT_SUCCESS(Status)) {
- p = (PIO_RESOURCE_LIST)((ULONG)p + SingleListSize);
+ p = (PIO_RESOURCE_LIST)((ULONG_PTR)p + SingleListSize);
Priority++;
}
} while (Status != STATUS_NOT_FOUND);
CurrentEntry = CurrentEntry->Flink;
}
- Irp->IoStatus.Information = (ULONG)Relations;
+ Irp->IoStatus.Information = (ULONG_PTR)Relations;
return Status;
}
static DRIVER_DISPATCH ISAPNPDispatchOpenClose;
static NTSTATUS
-STDCALL
+NTAPI
ISAPNPDispatchOpenClose(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
static DRIVER_DISPATCH ISAPNPDispatchReadWrite;
static NTSTATUS
-STDCALL
+NTAPI
ISAPNPDispatchReadWrite(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN PIRP Irp)
static DRIVER_DISPATCH ISAPNPDispatchDeviceControl;
static NTSTATUS
-STDCALL
+NTAPI
ISAPNPDispatchDeviceControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
static DRIVER_DISPATCH ISAPNPControl;
static NTSTATUS
-STDCALL
+NTAPI
ISAPNPControl(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
Status = ISAPNPStopDevice(DeviceObject, Irp, IrpSp);
break;
+ case IRP_MN_FILTER_RESOURCE_REQUIREMENTS:
+ /* Nothing to do here */
+ DPRINT("IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
+ Status = Irp->IoStatus.Status;
+ break;
+
default:
DPRINT("Unknown IOCTL 0x%X\n", IrpSp->MinorFunction);
Status = STATUS_NOT_IMPLEMENTED;
static NTSTATUS
-STDCALL
+NTAPI
ISAPNPAddDevice(
IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT PhysicalDeviceObject)
NTSTATUS
-STDCALL
+NTAPI
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath)