reactos/drivers/storage/port/storport/miniport.c

94 lines
2.2 KiB
C
Raw Normal View History

/*
* PROJECT: ReactOS Storport Driver
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
* PURPOSE: Miniport interface code
* COPYRIGHT: Copyright 2017 Eric Kohl (eric.kohl@reactos.org)
*/
/* INCLUDES *******************************************************************/
#include "precomp.h"
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ******************************************************************/
VOID
MiniportInitialize(
_In_ PMINIPORT Miniport,
_In_ PFDO_DEVICE_EXTENSION DeviceExtension,
_In_ PHW_INITIALIZATION_DATA InitData)
{
Miniport->DeviceExtension = DeviceExtension;
Miniport->InitData = InitData;
}
NTSTATUS
MiniportFindAdapter(
_In_ PMINIPORT Miniport)
{
BOOLEAN Reserved = FALSE;
ULONG Result;
NTSTATUS Status;
DPRINT1("MiniportFindAdapter(%p)\n", Miniport);
Result = Miniport->InitData->HwFindAdapter(NULL,
NULL,
NULL,
NULL,
NULL,
&Reserved);
DPRINT1("HwFindAdapter() returned %lu\n", Result);
switch (Result)
{
case SP_RETURN_NOT_FOUND:
DPRINT1("SP_RETURN_NOT_FOUND\n");
Status = STATUS_NOT_FOUND;
break;
case SP_RETURN_FOUND:
DPRINT1("SP_RETURN_FOUND\n");
Status = STATUS_SUCCESS;
break;
case SP_RETURN_ERROR:
DPRINT1("SP_RETURN_ERROR\n");
Status = STATUS_ADAPTER_HARDWARE_ERROR;
break;
case SP_RETURN_BAD_CONFIG:
DPRINT1("SP_RETURN_BAD_CONFIG\n");
Status = STATUS_DEVICE_CONFIGURATION_ERROR;
break;
default:
DPRINT1("Unknown result: %lu\n", Result);
Status = STATUS_INTERNAL_ERROR;
break;
}
return Status;
}
NTSTATUS
MiniportHwInitialize(
_In_ PMINIPORT Miniport)
{
NTSTATUS Status;
DPRINT1("MiniportHwInitialize(%p)\n", Miniport);
Status = Miniport->InitData->HwInitialize(NULL);
DPRINT1("HwInitialize() returned 0x%08lx\n", Status);
return Status;
}
/* EOF */