31 DPRINT1(
"PortAddDriverInitData()\n");
58 DPRINT1(
"PortDeleteDriverInitData()\n");
85 DPRINT1(
"PortGetDriverInitData()\n");
96 ListEntry = ListEntry->
Flink;
111 DPRINT1(
"PortAcquireSpinLock(%p %lu %p %p)\n",
143 DPRINT1(
"PortReleaseSpinLock(%p %p)\n",
175 WCHAR NameBuffer[80];
181 DPRINT1(
"PortAddDevice(%p %p)\n",
188 L"\\Device\\RaidPort%lu",
205 DPRINT1(
"IoCreateDevice() failed (Status 0x%08lx)\n",
Status);
235 DPRINT1(
"IoAttachDeviceToDeviceStackSafe() failed (Status 0x%08lx)\n",
Status);
292 DPRINT1(
"PortDispatchCreate(%p %p)\n",
311 DPRINT1(
"PortDispatchClose(%p %p)\n",
315 Irp->IoStatus.Information = 0;
330 DPRINT1(
"PortDispatchDeviceControl(%p %p)\n",
334 Irp->IoStatus.Information = 0;
351 DPRINT1(
"PortDispatchScsi(%p %p)\n",
369 Irp->IoStatus.Information = 0;
385 DPRINT1(
"PortDispatchSystemControl(%p %p)\n",
389 Irp->IoStatus.Information = 0;
406 DPRINT1(
"PortDispatchPnp(%p %p)\n",
424 Irp->IoStatus.Information = 0;
438 DPRINT1(
"PortDispatchPower(%p %p)\n",
442 Irp->IoStatus.Information = 0;
476 DPRINT1(
"StorPortAllocateRegistryBuffer()\n");
511 DPRINT1(
"StorPortCompleteRequest()\n");
525 DPRINT1(
"StorPortConvertPhysicalAddressToUlong()\n");
542 DPRINT1(
"StorPortConvertUlongToPhysicalAddress()\n");
544 Address.QuadPart = UlongAddress;
580 DPRINT1(
"StorPortDeviceBusy()\n");
598 DPRINT1(
"StorPortDeviceReady()\n");
614 DPRINT1(
"StorPortExtendedFunction(%d %p ...)\n",
615 FunctionCode, HwDeviceExtension);
631 DPRINT1(
"StorPortFreeDeviceBase(%p %p)\n",
632 HwDeviceExtension, MappedAddress);
646 DPRINT1(
"StorPortFreeRegistryBuffer()\n");
669 DPRINT1(
"StorPortGetBusData(%p %lu %lu %lu %p %lu)\n",
676 DPRINT1(
"DeviceExtension %p MiniportExtension %p\n",
677 DeviceExtension, MiniportExtension);
681 if (BusDataType == 4)
714 DPRINT1(
"StorPortGetDeviceBase(%p %lu %lu 0x%I64x %lu %u)\n",
721 DPRINT1(
"HwDeviceExtension %p MiniportExtension %p\n",
722 HwDeviceExtension, MiniportExtension);
749 DPRINT1(
"Mapped Address: %p\n", MappedAddress);
759 MappedAddress =
NULL;
762 DPRINT1(
"Mapped Address: %p\n", MappedAddress);
763 return MappedAddress;
779 DPRINT1(
"StorPortGetLogicalUnit()\n");
802 DPRINT1(
"StorPortGetPhysicalAddress(%p %p %p %p)\n",
809 DPRINT1(
"HwDeviceExtension %p MiniportExtension %p\n",
810 HwDeviceExtension, MiniportExtension);
812 DeviceExtension = MiniportExtension->
Miniport->DeviceExtension;
850 DPRINT1(
"StorPortGetScatterGatherList()\n");
869 DPRINT(
"StorPortGetSrb()\n");
889 DPRINT1(
"StorPortGetUncachedExtension(%p %p %lu)\n",
896 DPRINT1(
"HwDeviceExtension %p MiniportExtension %p\n",
897 HwDeviceExtension, MiniportExtension);
899 DeviceExtension = MiniportExtension->
Miniport->DeviceExtension;
910 HighestAddress.
QuadPart = 0x00000000FFFFFFFF;
936 DPRINT1(
"StorPortGetVirtualAddress(%p %I64x)\n",
960 DPRINT1(
"StorPortInitialize(%p %p %p %p)\n",
982 DPRINT1(
"Invalid parameter!\n");
993 DPRINT1(
"Revision mismatch!\n");
999 if (DriverObjectExtension ==
NULL)
1001 DPRINT1(
"No driver object extension!\n");
1006 (
PVOID *)&DriverObjectExtension);
1009 DPRINT1(
"IoAllocateDriverObjectExtension() failed (Status 0x%08lx)\n",
Status);
1013 DPRINT1(
"Driver object extension created!\n");
1044 DPRINT1(
"StorPortInitialize() done (Status 0x%08lx)\n",
Status);
1065 DPRINT1(
"ScsiPortLogError() called\n");
1066 DPRINT1(
"PathId: 0x%02x TargetId: 0x%02x Lun: 0x%02x ErrorCode: 0x%08lx UniqueId: 0x%08lx\n",
1069 DPRINT1(
"ScsiPortLogError() done\n");
1112 DPRINT1(
"StorPortNotification(%x %p)\n",
1116 if (HwDeviceExtension !=
NULL)
1121 DPRINT1(
"HwDeviceExtension %p MiniportExtension %p\n",
1122 HwDeviceExtension, MiniportExtension);
1124 DeviceExtension = MiniportExtension->
Miniport->DeviceExtension;
1137 DPRINT1(
"Need to complete the IRP!\n");
1143 DPRINT1(
"GetExtendedFunctionTable\n");
1145 if (ppExtendedFunctions !=
NULL)
1146 *ppExtendedFunctions =
NULL;
1150 DPRINT1(
"EnablePassiveInitialization\n");
1152 DPRINT1(
"HwPassiveInitRoutine %p\n", HwPassiveInitRoutine);
1157 if ((DeviceExtension !=
NULL) &&
1170 DPRINT1(
"HwDpcRoutine %p\n", HwDpcRoutine);
1174 (
PVOID)DeviceExtension);
1183 DPRINT1(
"LockContext %p\n", LockContext);
1238 DPRINT1(
"StorPortPauseDevice()\n");
1244 #if defined(_M_AMD64) 1256 DPRINT1(
"StorPortQuerySystemTime(%p)\n", CurrentTime);
1292 DPRINT1(
"StorPortRegistryRead()\n");
1312 DPRINT1(
"StorPortRegistryWrite()\n");
1327 DPRINT1(
"StorPortResume()\n");
1345 DPRINT1(
"StorPortResumeDevice()\n");
1370 DPRINT1(
"StorPortSetBusData(%p %lu %lu %lu %p %lu %lu)\n",
1376 DPRINT1(
"DeviceExtension %p MiniportExtension %p\n",
1377 DeviceExtension, MiniportExtension);
1405 DPRINT1(
"StorPortSetDeviceQueueDepth()\n");
1435 DPRINT1(
"StorPortSynchronizeAccess()\n");
1454 DPRINT1(
"StorPortValidateRange()\n");
#define KeQuerySystemTime(t)
#define DO_DEVICE_INITIALIZING
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
#define STATUS_REVISION_MISMATCH
NTSTATUS NTAPI PortFdoScsi(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
STORPORT_API ULONG NTAPI StorPortConvertPhysicalAddressToUlong(_In_ STOR_PHYSICAL_ADDRESS Address)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
static VOID PortReleaseSpinLock(PFDO_DEVICE_EXTENSION DeviceExtension, PSTOR_LOCK_HANDLE LockHandle)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION _In_ ULONG _In_ SIZE_T _In_ ULONG _In_ USHORT Depth
PHYSICAL_ADDRESS UncachedExtensionPhysicalBase
_In_ NDIS_ERROR_CODE ErrorCode
_In_ ULONG _In_ ULONG _In_ ULONG Length
PVOID UncachedExtensionVirtualBase
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
enum _INTERFACE_TYPE INTERFACE_TYPE
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
_IRQL_requires_same_ _In_opt_ PVOID Argument1
_In_ PSCSI_REQUEST_BLOCK Srb
STORPORT_API VOID NTAPI StorPortMoveMemory(_Out_writes_bytes_(Length) PVOID Destination, _In_reads_bytes_(Length) PVOID Source, _In_ ULONG Length)
NTSTATUS NTAPI IoAllocateDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension)
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortGetPhysicalAddress(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ PVOID VirtualAddress, _Out_ ULONG *Length)
enum _STORPORT_FUNCTION_CODE STORPORT_FUNCTION_CODE
static NTSTATUS NTAPI PortDispatchPnp(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
STORPORT_API VOID NTAPI StorPortStallExecution(_In_ ULONG Delay)
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR PathId
static VOID PortDeleteDriverInitData(PDRIVER_OBJECT_EXTENSION DriverExtension)
#define STATUS_INVALID_PARAMETER
NTSTATUS NTAPI PortPdoPnp(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR TargetId
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
static NTSTATUS NTAPI PortAddDevice(_In_ PDRIVER_OBJECT DriverObject, _In_ PDEVICE_OBJECT PhysicalDeviceObject)
STORPORT_API BOOLEAN NTAPI StorPortPause(_In_ PVOID HwDeviceExtension, _In_ ULONG TimeOut)
static NTSTATUS PortAddDriverInitData(PDRIVER_OBJECT_EXTENSION DriverExtension, PHW_INITIALIZATION_DATA HwInitializationData)
static NTSTATUS NTAPI PortDispatchScsi(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PHW_INITIALIZATION_DATA PortGetDriverInitData(PDRIVER_OBJECT_EXTENSION DriverExtension, INTERFACE_TYPE InterfaceType)
STOR_SYNCHRONIZED_ACCESS * PSTOR_SYNCHRONIZED_ACCESS
EXTENSION_TYPE ExtensionType
enum _STOR_SPINLOCK STOR_SPINLOCK
#define _When_(expr, annos)
PVOID NTAPI MmMapIoSpace(IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
PDEVICE_OBJECT PhysicalDeviceObject
VOID FASTCALL KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
STORPORT_API PSCSI_REQUEST_BLOCK NTAPI StorPortGetSrb(_In_ PVOID DeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ LONG QueueTag)
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
NTSTATUS AllocateAddressMapping(PMAPPED_ADDRESS *MappedAddressList, STOR_PHYSICAL_ADDRESS IoAddress, PVOID MappedAddress, ULONG NumberOfBytes, ULONG BusNumber)
STORPORT_API BOOLEAN NTAPI StorPortReady(_In_ PVOID HwDeviceExtension)
EXTENSION_TYPE ExtensionType
STORPORT_API VOID NTAPI StorPortFreeRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Buffer)
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
#define RtlMoveMemory(Destination, Source, Length)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
STORPORT_API VOID NTAPI StorPortSynchronizeAccess(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, _In_opt_ PVOID Context)
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
STORPORT_API BOOLEAN NTAPI StorPortSetDeviceQueueDepth(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG Depth)
_In_ PDEVICE_OBJECT DeviceObject
LIST_ENTRY AdapterListEntry
return STATUS_NOT_IMPLEMENTED
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortConvertUlongToPhysicalAddress(_In_ ULONG_PTR UlongAddress)
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define FILE_DEVICE_CONTROLLER
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
BOOLEAN TranslateResourceListAddress(PFDO_DEVICE_EXTENSION DeviceExtension, INTERFACE_TYPE BusType, ULONG SystemIoBusNumber, STOR_PHYSICAL_ADDRESS IoAddress, ULONG NumberOfBytes, BOOLEAN InIoSpace, PPHYSICAL_ADDRESS TranslatedAddress)
union Alignment_ Alignment
VOID NTAPI KeReleaseInterruptSpinLock(IN PKINTERRUPT Interrupt, IN KIRQL OldIrql)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
PDRIVER_OBJECT_EXTENSION DriverExtension
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define IoCompleteRequest
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
NTSYSAPI NTSTATUS WINAPI vDbgPrintExWithPrefix(LPCSTR, ULONG, ULONG, LPCSTR, __ms_va_list)
static NTSTATUS NTAPI PortDispatchSystemControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
struct _STOR_LOCK_HANDLE * PSTOR_LOCK_HANDLE
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
KSPIN_LOCK AdapterListLock
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
STORPORT_API VOID NTAPI StorPortLogError(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG ErrorCode, _In_ ULONG UniqueId)
ULONG UncachedExtensionSize
struct _LIST_ENTRY * Flink
VOID FASTCALL KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
STORPORT_API PVOID NTAPI StorPortGetLogicalUnit(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
STORPORT_API ULONG StorPortExtendedFunction(_In_ STORPORT_FUNCTION_CODE FunctionCode, _In_ PVOID HwDeviceExtension,...)
STORPORT_API VOID StorPortDebugPrint(_In_ ULONG DebugPrintLevel, _In_ PCHAR DebugMessage,...)
NTSTATUS NTAPI IoAttachDeviceToDeviceStackSafe(IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice, IN OUT PDEVICE_OBJECT *AttachedToDeviceObject)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI PortPdoScsi(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
NTSTATUS NTAPI PortFdoPnp(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
STORPORT_API BOOLEAN NTAPI StorPortResumeDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
KIRQL NTAPI KeAcquireInterruptSpinLock(IN PKINTERRUPT Interrupt)
struct _MINIPORT * Miniport
PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitRoutine
#define STATUS_UNSUCCESSFUL
#define ExAllocatePoolWithTag(hernya, size, tag)
_Must_inspect_result_ _In_ WDFDEVICE Fdo
static VOID NTAPI PortUnload(_In_ PDRIVER_OBJECT DriverObject)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
static NTSTATUS NTAPI PortDispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PDEVICE_OBJECT PhysicalDevice
STORPORT_API BOOLEAN NTAPI StorPortResume(_In_ PVOID HwDeviceExtension)
STORPORT_API PSTOR_SCATTER_GATHER_LIST NTAPI StorPortGetScatterGatherList(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
static NTSTATUS NTAPI PortDispatchClose(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
PVOID NTAPI IoGetDriverObjectExtension(IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress)
STORPORT_API ULONG NTAPI StorPortGetBusData(_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _Out_ _When_(Length !=0, _Out_writes_bytes_(Length)) PVOID Buffer, _In_ ULONG Length)
int _cdecl swprintf(const WCHAR *,...)
STORPORT_API BOOLEAN NTAPI StorPortRegistryWrite(_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ ULONG BufferLength)
#define IRP_MJ_SYSTEM_CONTROL
VOID(* PHW_DPC_ROUTINE)(_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
STORPORT_API BOOLEAN NTAPI StorPortDeviceReady(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
_In_ ULONG _In_ ULONG Offset
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
STORPORT_API BOOLEAN NTAPI StorPortBusy(_In_ PVOID HwDeviceExtension, _In_ ULONG RequestsToComplete)
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
static NTSTATUS NTAPI PortDispatchCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
static VOID PortAcquireSpinLock(PFDO_DEVICE_EXTENSION DeviceExtension, STOR_SPINLOCK SpinLock, PVOID LockContext, PSTOR_LOCK_HANDLE LockHandle)
STORPORT_API BOOLEAN NTAPI StorPortRegistryRead(_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ PULONG BufferLength)
#define InitializeListHead(ListHead)
STORPORT_API BOOLEAN NTAPI StorPortPauseDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG TimeOut)
STORPORT_API VOID NTAPI StorPortFreeDeviceBase(_In_ PVOID HwDeviceExtension, _In_ PVOID MappedAddress)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
STORPORT_API ULONG NTAPI StorPortSetBusDataByOffset(_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
LIST_ENTRY AdapterListHead
UNICODE_STRING * PUNICODE_STRING
STORPORT_API ULONG NTAPI StorPortInitialize(_In_ PVOID Argument1, _In_ PVOID Argument2, _In_ struct _HW_INITIALIZATION_DATA *HwInitializationData, _In_opt_ PVOID HwContext)
STORPORT_API PVOID NTAPI StorPortGetDeviceBase(_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
void int int ULONGLONG int va_list * ap
PPCI_DRIVER_EXTENSION DriverExtension
struct _STOR_DPC * PSTOR_DPC
INTERFACE_TYPE AdapterInterfaceType
NTSTATUS NTAPI DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
STORPORT_API VOID NTAPI StorPortCompleteRequest(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ UCHAR SrbStatus)
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
BOOLEAN(* PHW_PASSIVE_INITIALIZE_ROUTINE)(_In_ PVOID DeviceExtension)
static NTSTATUS NTAPI PortDispatchDeviceControl(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define RtlZeroMemory(Destination, Length)
STORPORT_API PVOID NTAPI StorPortGetVirtualAddress(_In_ PVOID HwDeviceExtension, _In_ STOR_PHYSICAL_ADDRESS PhysicalAddress)
STORPORT_API BOOLEAN NTAPI StorPortValidateRange(_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
PHYSICAL_ADDRESS NTAPI MmGetPhysicalAddress(IN PVOID Address)
#define RtlCopyMemory(Destination, Source, Length)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
#define FILE_DEVICE_SECURE_OPEN
*LockHandle LockHandle _Out_ PKLOCK_QUEUE_HANDLE LockHandle
PDEVICE_OBJECT LowerDevice
STORPORT_API VOID NTAPI StorPortQuerySystemTime(_Out_ PLARGE_INTEGER CurrentTime)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
STORPORT_API VOID StorPortNotification(_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
#define ExFreePoolWithTag(_P, _T)
#define _Out_writes_bytes_(size)
STORPORT_API BOOLEAN NTAPI StorPortDeviceBusy(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG RequestsToComplete)
VOID NTAPI KeStallExecutionProcessor(IN ULONG MicroSeconds)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
base of all file and directory entries
struct _DRIVER_OBJECT * PDRIVER_OBJECT
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
STORPORT_API PVOID NTAPI StorPortGetUncachedExtension(_In_ PVOID HwDeviceExtension, _In_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ ULONG NumberOfBytes)
STORPORT_API PUCHAR NTAPI StorPortAllocateRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PULONG Length)
#define IRP_MJ_DEVICE_CONTROL
HW_INITIALIZATION_DATA HwInitData
#define _In_reads_bytes_(size)
PVOID NTAPI MmAllocateContiguousMemorySpecifyCache(IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS LowestAcceptableAddress OPTIONAL, IN PHYSICAL_ADDRESS HighestAcceptableAddress, IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL, IN MEMORY_CACHING_TYPE CacheType OPTIONAL)