27{
32
33 DPRINT(
"PortCreatePdo(%p %p)\n",
34 FdoDeviceExtension, PdoDeviceExtension);
35
36
45 {
48 }
49
50
53
56
58
62
63
64 if (FdoDeviceExtension->HwInitData !=
NULL &&
65 FdoDeviceExtension->HwInitData->SpecificLuExtensionSize != 0)
66 {
69 FdoDeviceExtension->HwInitData->SpecificLuExtensionSize,
72 {
73 DPRINT1(
"No pool for the unit extension\n");
76 }
77 }
78
79 DeviceExtension->
Bus = Bus;
81 DeviceExtension->
Lun =
Lun;
82
83
84
91
92
93
94
95
97
102
104
105
106
108
109
111
112
115
116
117 Pdo->Flags &= ~DO_DEVICE_INITIALIZING;
118
119 *PdoDeviceExtension = DeviceExtension;
120
122}
#define FILE_DEVICE_SECURE_OPEN
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
#define TAG_LUN_EXTENSION
VOID NTAPI StorpBuildUnitAddress(_In_ PPDO_DEVICE_EXTENSION PdoExtension, _Out_ PSTOR_ADDR_BTL8 Address)
Fills in the bus, target and LUN address of a logical unit.
#define InitializeListHead(ListHead)
_In_ UCXUSBDEVICE _In_ PDEVICE_OBJECT Pdo
#define FILE_DEVICE_MASS_STORAGE
static PVOID ExAllocatePoolZero(ULONG PoolType, SIZE_T NumberOfBytes, ULONG Tag)
#define FILE_AUTOGENERATED_DEVICE_NAME
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)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
struct STOR_ADDRESS_ALIGN _STOR_ADDR_BTL8 STOR_ADDR_BTL8
VOID NTAPI PortFdoLinkPdo(_Inout_ PFDO_DEVICE_EXTENSION FdoExtension, _Inout_ PPDO_DEVICE_EXTENSION PdoExtension)
Adds a PDO where both the list lock and the interrupt service routines respect it.
SCSI_UNIT_CONTROL_STATUS NTAPI MiniportUnitControl(_In_ PMINIPORT Miniport, _In_ SCSI_UNIT_CONTROL_TYPE ControlType, _In_opt_ PVOID Parameters)
Sends one unit control request, if the miniport claimed it.
PFDO_DEVICE_EXTENSION FdoExtension
PDO_IO_FLOW_CONTROL FlowControl
ULONG OutstandingRequestMax
EXTENSION_TYPE ExtensionType
LONG SpecialRequestCounter
LIST_ENTRY ActiveRequestsListHead
BOOLEAN IsWaitingQueueClear
ULONG RemainingBusyRequests
ULONG OutstandingRequestCount
LIST_ENTRY AwaitingRequestsListHead
#define RtlZeroMemory(Destination, Length)