ReactOS  0.4.14-dev-77-gd9e7c48
precomp.h File Reference
#include <wdm.h>
#include <ntddk.h>
#include <stdio.h>
#include <memory.h>
#include <storport.h>
#include <ntddscsi.h>
#include <ntdddisk.h>
#include <mountdev.h>
#include <wdmguid.h>
Include dependency graph for precomp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _DRIVER_INIT_DATA
 
struct  _DRIVER_OBJECT_EXTENSION
 
struct  _MINIPORT_DEVICE_EXTENSION
 
struct  _MINIPORT
 
struct  _UNIT_DATA
 
struct  _FDO_DEVICE_EXTENSION
 
struct  _PDO_DEVICE_EXTENSION
 

Macros

#define _STORPORT_
 
#define TAG_GLOBAL_DATA   'DGtS'
 
#define TAG_INIT_DATA   'DItS'
 
#define TAG_MINIPORT_DATA   'DMtS'
 
#define TAG_ACCRESS_RANGE   'RAtS'
 
#define TAG_RESOURCE_LIST   'LRtS'
 
#define TAG_ADDRESS_MAPPING   'MAtS'
 
#define TAG_INQUIRY_DATA   'QItS'
 
#define TAG_SENSE_DATA   'NStS'
 

Typedefs

typedef struct _DRIVER_INIT_DATA DRIVER_INIT_DATA
 
typedef struct _DRIVER_INIT_DATAPDRIVER_INIT_DATA
 
typedef struct _DRIVER_OBJECT_EXTENSION DRIVER_OBJECT_EXTENSION
 
typedef struct _DRIVER_OBJECT_EXTENSIONPDRIVER_OBJECT_EXTENSION
 
typedef struct _MINIPORT_DEVICE_EXTENSION MINIPORT_DEVICE_EXTENSION
 
typedef struct _MINIPORT_DEVICE_EXTENSIONPMINIPORT_DEVICE_EXTENSION
 
typedef struct _MINIPORT MINIPORT
 
typedef struct _MINIPORTPMINIPORT
 
typedef struct _UNIT_DATA UNIT_DATA
 
typedef struct _UNIT_DATAPUNIT_DATA
 
typedef struct _FDO_DEVICE_EXTENSION FDO_DEVICE_EXTENSION
 
typedef struct _FDO_DEVICE_EXTENSIONPFDO_DEVICE_EXTENSION
 
typedef struct _PDO_DEVICE_EXTENSION PDO_DEVICE_EXTENSION
 
typedef struct _PDO_DEVICE_EXTENSIONPPDO_DEVICE_EXTENSION
 

Enumerations

enum  DEVICE_STATE {
  dsStopped, dsStarted, dsPaused, dsRemoved,
  dsSurpriseRemoved, NotStarted = 0, Started, StopPending,
  Stopped, RemovePending, SurpriseRemovePending, Deleted,
  dsStopped, dsStarted, dsPaused, dsRemoved,
  dsSurpriseRemoved, dsStopped, dsStarted, dsPaused,
  dsRemoved, dsSurpriseRemoved
}
 
enum  EXTENSION_TYPE { InvalidExtension = 0, DriverExtension, FdoExtension, PdoExtension }
 

Functions

NTSTATUS NTAPI PortFdoScsi (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
 
NTSTATUS NTAPI PortFdoPnp (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
 
NTSTATUS MiniportInitialize (_In_ PMINIPORT Miniport, _In_ PFDO_DEVICE_EXTENSION DeviceExtension, _In_ PHW_INITIALIZATION_DATA HwInitializationData)
 
NTSTATUS MiniportFindAdapter (_In_ PMINIPORT Miniport)
 
NTSTATUS MiniportHwInitialize (_In_ PMINIPORT Miniport)
 
BOOLEAN MiniportHwInterrupt (_In_ PMINIPORT Miniport)
 
BOOLEAN MiniportStartIo (_In_ PMINIPORT Miniport, _In_ PSCSI_REQUEST_BLOCK Srb)
 
NTSTATUS ForwardIrpAndWait (_In_ PDEVICE_OBJECT LowerDevice, _In_ PIRP Irp)
 
NTSTATUS NTAPI ForwardIrpAndForget (_In_ PDEVICE_OBJECT LowerDevice, _In_ PIRP Irp)
 
INTERFACE_TYPE GetBusInterface (PDEVICE_OBJECT DeviceObject)
 
PCM_RESOURCE_LIST CopyResourceList (POOL_TYPE PoolType, PCM_RESOURCE_LIST Source)
 
NTSTATUS QueryBusInterface (PDEVICE_OBJECT DeviceObject, PGUID Guid, USHORT Size, USHORT Version, PBUS_INTERFACE_STANDARD Interface, PVOID InterfaceSpecificData)
 
BOOLEAN TranslateResourceListAddress (PFDO_DEVICE_EXTENSION DeviceExtension, INTERFACE_TYPE BusType, ULONG SystemIoBusNumber, STOR_PHYSICAL_ADDRESS IoAddress, ULONG NumberOfBytes, BOOLEAN InIoSpace, PPHYSICAL_ADDRESS TranslatedAddress)
 
NTSTATUS GetResourceListInterrupt (PFDO_DEVICE_EXTENSION DeviceExtension, PULONG Vector, PKIRQL Irql, KINTERRUPT_MODE *InterruptMode, PBOOLEAN ShareVector, PKAFFINITY Affinity)
 
NTSTATUS AllocateAddressMapping (PMAPPED_ADDRESS *MappedAddressList, STOR_PHYSICAL_ADDRESS IoAddress, PVOID MappedAddress, ULONG NumberOfBytes, ULONG BusNumber)
 
NTSTATUS PortCreatePdo (_In_ PFDO_DEVICE_EXTENSION FdoExtension, _In_ ULONG Bus, _In_ ULONG Target, _In_ ULONG Lun, _Out_ PPDO_DEVICE_EXTENSION *PdoExtension)
 
NTSTATUS PortDeletePdo (_In_ PPDO_DEVICE_EXTENSION PdoExtension)
 
NTSTATUS NTAPI PortPdoScsi (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
 
NTSTATUS NTAPI PortPdoPnp (_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp)
 
PHW_INITIALIZATION_DATA PortGetDriverInitData (PDRIVER_OBJECT_EXTENSION DriverExtension, INTERFACE_TYPE InterfaceType)
 
NTSTATUS NTAPI DriverEntry (_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
 

Macro Definition Documentation

◆ _STORPORT_

#define _STORPORT_

Definition at line 17 of file precomp.h.

◆ TAG_ACCRESS_RANGE

#define TAG_ACCRESS_RANGE   'RAtS'

Definition at line 29 of file precomp.h.

◆ TAG_ADDRESS_MAPPING

#define TAG_ADDRESS_MAPPING   'MAtS'

Definition at line 31 of file precomp.h.

◆ TAG_GLOBAL_DATA

#define TAG_GLOBAL_DATA   'DGtS'

Definition at line 26 of file precomp.h.

◆ TAG_INIT_DATA

#define TAG_INIT_DATA   'DItS'

Definition at line 27 of file precomp.h.

◆ TAG_INQUIRY_DATA

#define TAG_INQUIRY_DATA   'QItS'

Definition at line 32 of file precomp.h.

◆ TAG_MINIPORT_DATA

#define TAG_MINIPORT_DATA   'DMtS'

Definition at line 28 of file precomp.h.

◆ TAG_RESOURCE_LIST

#define TAG_RESOURCE_LIST   'LRtS'

Definition at line 30 of file precomp.h.

◆ TAG_SENSE_DATA

#define TAG_SENSE_DATA   'NStS'

Definition at line 33 of file precomp.h.

Typedef Documentation

◆ DRIVER_INIT_DATA

◆ DRIVER_OBJECT_EXTENSION

◆ FDO_DEVICE_EXTENSION

◆ MINIPORT

◆ MINIPORT_DEVICE_EXTENSION

◆ PDO_DEVICE_EXTENSION

◆ PDRIVER_INIT_DATA

◆ PDRIVER_OBJECT_EXTENSION

◆ PFDO_DEVICE_EXTENSION

◆ PMINIPORT

◆ PMINIPORT_DEVICE_EXTENSION

◆ PPDO_DEVICE_EXTENSION

◆ PUNIT_DATA

◆ UNIT_DATA

Enumeration Type Documentation

◆ DEVICE_STATE

Enumerator
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 
NotStarted 
Started 
StopPending 
Stopped 
RemovePending 
SurpriseRemovePending 
Deleted 
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 
dsStopped 
dsStarted 
dsPaused 
dsRemoved 
dsSurpriseRemoved 

Definition at line 35 of file precomp.h.

36 {
37  dsStopped,
38  dsStarted,
39  dsPaused,
40  dsRemoved,
42 } DEVICE_STATE;
DEVICE_STATE
Definition: precomp.h:35

◆ EXTENSION_TYPE

Enumerator
InvalidExtension 
DriverExtension 
FdoExtension 
PdoExtension 

Definition at line 44 of file precomp.h.

Function Documentation

◆ AllocateAddressMapping()

NTSTATUS AllocateAddressMapping ( PMAPPED_ADDRESS MappedAddressList,
STOR_PHYSICAL_ADDRESS  IoAddress,
PVOID  MappedAddress,
ULONG  NumberOfBytes,
ULONG  BusNumber 
)

Definition at line 331 of file misc.c.

337 {
339 
340  DPRINT1("AllocateAddressMapping()\n");
341 
343  sizeof(MAPPED_ADDRESS),
345  if (Mapping == NULL)
346  {
347  DPRINT1("No memory!\n");
348  return STATUS_NO_MEMORY;
349  }
350 
352 
353  Mapping->NextMappedAddress = *MappedAddressList;
354  *MappedAddressList = Mapping;
355 
356  Mapping->IoAddress = IoAddress;
357  Mapping->MappedAddress = MappedAddress;
358  Mapping->NumberOfBytes = NumberOfBytes;
359  Mapping->BusNumber = BusNumber;
360 
361  return STATUS_SUCCESS;
362 }
static PVOID Mapping[EMS_PHYSICAL_PAGES]
Definition: emsdrv.c:41
#define TAG_ADDRESS_MAPPING
Definition: precomp.h:31
smooth NULL
Definition: ftsmooth.c:416
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:156
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
#define DPRINT1
Definition: precomp.h:8
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:998
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by StorPortGetDeviceBase().

◆ CopyResourceList()

PCM_RESOURCE_LIST CopyResourceList ( POOL_TYPE  PoolType,
PCM_RESOURCE_LIST  Source 
)

Definition at line 132 of file misc.c.

135 {
137  ULONG Size;
138 
139  DPRINT1("CopyResourceList(%lu %p)\n",
140  PoolType, Source);
141 
142  /* Get the size of the resource list */
144 
145  /* Allocate a new buffer */
147  Size,
149  if (Destination == NULL)
150  return NULL;
151 
152  /* Copy the resource list */
154  Source,
155  Size);
156 
157  return Destination;
158 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define TAG_RESOURCE_LIST
Definition: precomp.h:30
smooth NULL
Definition: ftsmooth.c:416
static ULONG GetResourceListSize(PCM_RESOURCE_LIST ResourceList)
Definition: misc.c:101
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:2891
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
#define DPRINT1
Definition: precomp.h:8
unsigned int ULONG
Definition: retypes.h:1
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3167
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
Definition: fltkernel.h:1444

Referenced by PortFdoStartDevice().

◆ DriverEntry()

NTSTATUS NTAPI DriverEntry ( _In_ PDRIVER_OBJECT  DriverObject,
_In_ PUNICODE_STRING  RegistryPath 
)

Definition at line 25 of file ksecdd.c.

28 {
29  UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Device\\KsecDD");
31 
32  /* Create the KsecDD device */
34  0,
35  &DeviceName,
37  0x100u,
38  FALSE,
40  if (!NT_SUCCESS(Status))
41  {
42  DPRINT1("Failed to create KsecDD device: 0x%lx\n", Status);
43  return Status;
44  }
45 
46  /* Set up dispatch table */
54 
55  /* Initialize */
57 
58  return STATUS_SUCCESS;
59 }
#define FILE_DEVICE_KSEC
Definition: winioctl.h:162
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
LONG NTSTATUS
Definition: precomp.h:26
WCHAR DeviceName[]
Definition: adapter.cpp:21
PDEVICE_OBJECT KsecDeviceObject
Definition: ksecdd.c:18
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
#define IRP_MJ_QUERY_VOLUME_INFORMATION
Definition: rdpdr.c:50
VOID NTAPI KsecInitializeEncryptionSupport(VOID)
Definition: crypt.c:32
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
NTSTATUS NTAPI KsecDdDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp)
Definition: dispatch.c:184
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
static const WCHAR L[]
Definition: oid.c:1250
Status
Definition: gdiplustypes.h:24
#define DPRINT1
Definition: precomp.h:8
#define IRP_MJ_READ
Definition: rdpdr.c:46
PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION+1]
Definition: iotypes.h:2181
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)
Definition: device.c:1031
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_QUERY_INFORMATION
Definition: rdpdr.c:48
return STATUS_SUCCESS
Definition: btrfs.c:2966
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define RTL_CONSTANT_STRING(s)
Definition: tunneltest.c:14

◆ ForwardIrpAndForget()

NTSTATUS NTAPI ForwardIrpAndForget ( _In_ PDEVICE_OBJECT  LowerDevice,
_In_ PIRP  Irp 
)

Definition at line 61 of file misc.c.

64 {
65  ASSERT(LowerDevice);
66 
68  return IoCallDriver(LowerDevice, Irp);
69 }
_In_ PIRP Irp
Definition: csq.h:116
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1218
#define IoSkipCurrentIrpStackLocation(Irp)
Definition: ntifs_ex.h:421

◆ ForwardIrpAndWait()

NTSTATUS ForwardIrpAndWait ( _In_ PDEVICE_OBJECT  LowerDevice,
_In_ PIRP  Irp 
)

Definition at line 33 of file misc.c.

36 {
37  KEVENT Event;
39 
40  ASSERT(LowerDevice);
41 
44 
46 
47  Status = IoCallDriver(LowerDevice, Irp);
48  if (Status == STATUS_PENDING)
49  {
51  if (NT_SUCCESS(Status))
52  Status = Irp->IoStatus.Status;
53  }
54 
55  return Status;
56 }
#define TRUE
Definition: types.h:120
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
#define IoSetCompletionRoutine(_Irp, _CompletionRoutine, _Context, _InvokeOnSuccess, _InvokeOnError, _InvokeOnCancel)
Definition: irp.cpp:515
FORCEINLINE VOID IoCopyCurrentIrpStackLocationToNext(_Inout_ PIRP Irp)
Definition: iofuncs.h:2820
_In_ PVOID _In_ ULONG Event
Definition: iotypes.h:435
smooth NULL
Definition: ftsmooth.c:416
static NTSTATUS NTAPI ForwardIrpAndWaitCompletion(_In_ PDEVICE_OBJECT DeviceObject, _In_ PIRP Irp, _In_ PVOID Context)
Definition: misc.c:21
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_PENDING
Definition: ntstatus.h:82
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
Status
Definition: gdiplustypes.h:24
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1218

◆ GetBusInterface()

INTERFACE_TYPE GetBusInterface ( PDEVICE_OBJECT  DeviceObject)

Definition at line 73 of file misc.c.

75 {
76  GUID Guid;
77  ULONG Length;
79 
82  sizeof(Guid),
83  &Guid,
84  &Length);
85  if (!NT_SUCCESS(Status))
87 
88  if (RtlCompareMemory(&Guid, &GUID_BUS_TYPE_PCMCIA, sizeof(GUID)) == sizeof(GUID))
89  return PCMCIABus;
90  else if (RtlCompareMemory(&Guid, &GUID_BUS_TYPE_PCI, sizeof(GUID)) == sizeof(GUID))
91  return PCIBus;
92  else if (RtlCompareMemory(&Guid, &GUID_BUS_TYPE_ISAPNP, sizeof(GUID)) == sizeof(GUID))
93  return PNPISABus;
94 
96 }
LONG NTSTATUS
Definition: precomp.h:26
static GUID * Guid
Definition: apphelp.c:93
NTSTATUS NTAPI IoGetDeviceProperty(IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength)
Definition: pnpmgr.c:4228
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
unsigned int ULONG
Definition: retypes.h:1
#define RtlCompareMemory(s1, s2, l)
Definition: env_spec_w32.h:465

◆ GetResourceListInterrupt()

NTSTATUS GetResourceListInterrupt ( PFDO_DEVICE_EXTENSION  DeviceExtension,
PULONG  Vector,
PKIRQL  Irql,
KINTERRUPT_MODE InterruptMode,
PBOOLEAN  ShareVector,
PKAFFINITY  Affinity 
)

Definition at line 282 of file misc.c.

289 {
290  PCM_FULL_RESOURCE_DESCRIPTOR FullDescriptor;
291  PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
292  INT i, j;
293 
294  DPRINT1("GetResourceListInterrupt(%p)\n",
295  DeviceExtension);
296 
297  FullDescriptor = DeviceExtension->TranslatedResources->List;
298  for (i = 0; i < DeviceExtension->TranslatedResources->Count; i++)
299  {
300  for (j = 0; j < FullDescriptor->PartialResourceList.Count; j++)
301  {
302  PartialDescriptor = FullDescriptor->PartialResourceList.PartialDescriptors + j;
303 
304  switch (PartialDescriptor->Type)
305  {
307  DPRINT1("Interrupt: Level %lu Vector %lu\n",
308  PartialDescriptor->u.Interrupt.Level,
309  PartialDescriptor->u.Interrupt.Vector);
310 
311  *Vector = PartialDescriptor->u.Interrupt.Vector;
312  *Irql = (KIRQL)PartialDescriptor->u.Interrupt.Level;
314  *ShareVector = (PartialDescriptor->ShareDisposition == CmResourceShareShared) ? TRUE : FALSE;
315  *Affinity = PartialDescriptor->u.Interrupt.Affinity;
316 
317  return STATUS_SUCCESS;
318  }
319  }
320 
321  /* Advance to next CM_FULL_RESOURCE_DESCRIPTOR block in memory. */
322  FullDescriptor = (PCM_FULL_RESOURCE_DESCRIPTOR)(FullDescriptor->PartialResourceList.PartialDescriptors +
323  FullDescriptor->PartialResourceList.Count);
324  }
325 
326  return STATUS_NOT_FOUND;
327 }
#define TRUE
Definition: types.h:120
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE InterruptMode
Definition: iofuncs.h:798
CM_FULL_RESOURCE_DESCRIPTOR List[1]
Definition: hwresource.cpp:165
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG _In_ KIRQL _In_ KIRQL _In_ KINTERRUPT_MODE _In_ BOOLEAN ShareVector
Definition: iofuncs.h:798
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@371::@374 Interrupt
_Out_ PKIRQL Irql
Definition: csq.h:179
int32_t INT
Definition: typedefs.h:56
UCHAR KIRQL
Definition: env_spec_w32.h:591
CM_PARTIAL_RESOURCE_LIST PartialResourceList
Definition: hwresource.cpp:160
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _CM_FULL_RESOURCE_DESCRIPTOR * PCM_FULL_RESOURCE_DESCRIPTOR
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@371 u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
#define STATUS_NOT_FOUND
Definition: shellext.h:67
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
Definition: halfuncs.h:170
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: hwresource.cpp:119
#define CmResourceTypeInterrupt
Definition: hwresource.cpp:124
#define DPRINT1
Definition: precomp.h:8
PCM_RESOURCE_LIST TranslatedResources
Definition: precomp.h:104
#define CM_RESOURCE_INTERRUPT_LATCHED
Definition: cmtypes.h:144
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortFdoConnectInterrupt().

◆ MiniportFindAdapter()

NTSTATUS MiniportFindAdapter ( _In_ PMINIPORT  Miniport)

Definition at line 283 of file miniport.c.

285 {
287  ULONG Result;
289 
290  DPRINT1("MiniportFindAdapter(%p)\n", Miniport);
291 
292  /* Call the miniport HwFindAdapter routine */
293  Result = Miniport->InitData->HwFindAdapter(&Miniport->MiniportExtension->HwDeviceExtension,
294  NULL,
295  NULL,
296  NULL,
297  &Miniport->PortConfig,
298  &Reserved);
299  DPRINT1("HwFindAdapter() returned %lu\n", Result);
300 
301  /* Convert the result to a status code */
302  switch (Result)
303  {
304  case SP_RETURN_NOT_FOUND:
305  DPRINT1("SP_RETURN_NOT_FOUND\n");
307  break;
308 
309  case SP_RETURN_FOUND:
310  DPRINT1("SP_RETURN_FOUND\n");
312  break;
313 
314  case SP_RETURN_ERROR:
315  DPRINT1("SP_RETURN_ERROR\n");
317  break;
318 
320  DPRINT1("SP_RETURN_BAD_CONFIG\n");
322  break;
323 
324  default:
325  DPRINT1("Unknown result: %lu\n", Result);
327  break;
328  }
329 
330  return Status;
331 }
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_INTERNAL_ERROR
Definition: ntstatus.h:451
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
_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
Definition: wsk.h:426
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define STATUS_NOT_FOUND
Definition: shellext.h:67
#define SP_RETURN_NOT_FOUND
Definition: srb.h:513
#define SP_RETURN_FOUND
Definition: srb.h:514
Status
Definition: gdiplustypes.h:24
#define SP_RETURN_BAD_CONFIG
Definition: srb.h:516
#define DPRINT1
Definition: precomp.h:8
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_ADAPTER_HARDWARE_ERROR
Definition: ntstatus.h:416
#define SP_RETURN_ERROR
Definition: srb.h:515
#define STATUS_DEVICE_CONFIGURATION_ERROR
Definition: ntstatus.h:605
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortFdoStartMiniport().

◆ MiniportHwInitialize()

NTSTATUS MiniportHwInitialize ( _In_ PMINIPORT  Miniport)

Definition at line 335 of file miniport.c.

337 {
338  BOOLEAN Result;
339 
340  DPRINT1("MiniportHwInitialize(%p)\n", Miniport);
341 
342  /* Call the miniport HwInitialize routine */
343  Result = Miniport->InitData->HwInitialize(&Miniport->MiniportExtension->HwDeviceExtension);
344  DPRINT1("HwInitialize() returned %u\n", Result);
345 
347 }
unsigned char BOOLEAN
_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
Definition: wsk.h:426
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
#define DPRINT1
Definition: precomp.h:8
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortFdoStartMiniport().

◆ MiniportHwInterrupt()

BOOLEAN MiniportHwInterrupt ( _In_ PMINIPORT  Miniport)

Definition at line 351 of file miniport.c.

353 {
354  BOOLEAN Result;
355 
356  DPRINT1("MiniportHwInterrupt(%p)\n",
357  Miniport);
358 
359  Result = Miniport->InitData->HwInterrupt(&Miniport->MiniportExtension->HwDeviceExtension);
360  DPRINT1("HwInterrupt() returned %u\n", Result);
361 
362  return Result;
363 }
unsigned char BOOLEAN
_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
Definition: wsk.h:426
#define DPRINT1
Definition: precomp.h:8

Referenced by PortFdoInterruptRoutine().

◆ MiniportInitialize()

NTSTATUS MiniportInitialize ( _In_ PMINIPORT  Miniport,
_In_ PFDO_DEVICE_EXTENSION  DeviceExtension,
_In_ PHW_INITIALIZATION_DATA  HwInitializationData 
)

Definition at line 234 of file miniport.c.

238 {
239  PMINIPORT_DEVICE_EXTENSION MiniportExtension;
240  ULONG Size;
242 
243  DPRINT1("MiniportInitialize(%p %p %p)\n",
244  Miniport, DeviceExtension, InitData);
245 
246  Miniport->DeviceExtension = DeviceExtension;
247  Miniport->InitData = InitData;
248 
249  /* Calculate the miniport device extension size */
250  Size = sizeof(MINIPORT_DEVICE_EXTENSION) +
251  Miniport->InitData->DeviceExtensionSize;
252 
253  /* Allocate and initialize the miniport device extension */
254  MiniportExtension = ExAllocatePoolWithTag(NonPagedPool,
255  Size,
257  if (MiniportExtension == NULL)
258  return STATUS_NO_MEMORY;
259 
260  RtlZeroMemory(MiniportExtension, Size);
261 
262  MiniportExtension->Miniport = Miniport;
263  Miniport->MiniportExtension = MiniportExtension;
264 
265  /* Initialize the port configuration */
266  Status = InitializeConfiguration(&Miniport->PortConfig,
267  InitData,
268  DeviceExtension->BusNumber,
269  DeviceExtension->SlotNumber);
270  if (!NT_SUCCESS(Status))
271  return Status;
272 
273  /* Assign the resources to the port configuration */
274  AssignResourcesToConfiguration(&Miniport->PortConfig,
275  DeviceExtension->AllocatedResources,
276  InitData->NumberOfAccessRanges);
277 
278  return STATUS_SUCCESS;
279 }
#define TAG_MINIPORT_DATA
Definition: precomp.h:28
LONG NTSTATUS
Definition: precomp.h:26
smooth NULL
Definition: ftsmooth.c:416
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
struct _MINIPORT * Miniport
Definition: precomp.h:72
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
Status
Definition: gdiplustypes.h:24
static VOID AssignResourcesToConfiguration(_In_ PPORT_CONFIGURATION_INFORMATION PortConfiguration, _In_ PCM_RESOURCE_LIST ResourceList, _In_ ULONG NumberOfAccessRanges)
Definition: miniport.c:94
static NTSTATUS InitializeConfiguration(_In_ PPORT_CONFIGURATION_INFORMATION PortConfig, _In_ PHW_INITIALIZATION_DATA InitData, _In_ ULONG BusNumber, _In_ ULONG SlotNumber)
Definition: miniport.c:20
#define STATUS_NO_MEMORY
Definition: ntstatus.h:246
#define DPRINT1
Definition: precomp.h:8
unsigned int ULONG
Definition: retypes.h:1
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
return STATUS_SUCCESS
Definition: btrfs.c:2966
struct _MINIPORT_DEVICE_EXTENSION MINIPORT_DEVICE_EXTENSION

◆ MiniportStartIo()

BOOLEAN MiniportStartIo ( _In_ PMINIPORT  Miniport,
_In_ PSCSI_REQUEST_BLOCK  Srb 
)

Definition at line 367 of file miniport.c.

370 {
371  BOOLEAN Result;
372 
373  DPRINT1("MiniportHwStartIo(%p %p)\n",
374  Miniport, Srb);
375 
376  Result = Miniport->InitData->HwStartIo(&Miniport->MiniportExtension->HwDeviceExtension, Srb);
377  DPRINT1("HwStartIo() returned %u\n", Result);
378 
379  return Result;
380 }
unsigned char BOOLEAN
_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
Definition: wsk.h:426
#define DPRINT1
Definition: precomp.h:8
IN PSCSI_REQUEST_BLOCK Srb
Definition: class2.h:49

◆ PortCreatePdo()

NTSTATUS PortCreatePdo ( _In_ PFDO_DEVICE_EXTENSION  FdoExtension,
_In_ ULONG  Bus,
_In_ ULONG  Target,
_In_ ULONG  Lun,
_Out_ PPDO_DEVICE_EXTENSION PdoExtension 
)

Definition at line 19 of file pdo.c.

25 {
26  PPDO_DEVICE_EXTENSION DeviceExtension = NULL;
30 
31  DPRINT("PortCreatePdo(%p %p)\n",
32  FdoDeviceExtension, PdoDeviceExtension);
33 
34  /* Create the port device */
35  Status = IoCreateDevice(FdoDeviceExtension->Device->DriverObject,
36  sizeof(PDO_DEVICE_EXTENSION),
37  NULL,
40  FALSE,
41  &Pdo);
42  if (!NT_SUCCESS(Status))
43  {
44  DPRINT1("IoCreateDevice() failed (Status 0x%lX)\n", Status);
45  return Status;
46  }
47 
48  /* Initialize the device */
51 
52  DeviceExtension = (PPDO_DEVICE_EXTENSION)Pdo->DeviceExtension;
53  RtlZeroMemory(DeviceExtension, sizeof(PDO_DEVICE_EXTENSION));
54 
55  DeviceExtension->ExtensionType = PdoExtension;
56 
57  DeviceExtension->Device = Pdo;
58  DeviceExtension->FdoExtension = FdoDeviceExtension;
59  DeviceExtension->PnpState = dsStopped;
60 
61  /* Add the PDO to the PDO list*/
62  KeAcquireInStackQueuedSpinLock(&FdoDeviceExtension->PdoListLock,
63  &LockHandle);
64  InsertHeadList(&FdoDeviceExtension->PdoListHead,
65  &DeviceExtension->PdoListEntry);
66  FdoDeviceExtension->PdoCount++;
68 
69  DeviceExtension->Bus = Bus;
70  DeviceExtension->Target = Target;
71  DeviceExtension->Lun = Lun;
72 
73 
74  // FIXME: More initialization
75 
76 
77  /* The device has been initialized */
79 
80  *PdoDeviceExtension = DeviceExtension;
81 
82  return STATUS_SUCCESS;
83 }
#define DO_DEVICE_INITIALIZING
Definition: env_spec_w32.h:399
#define DO_POWER_PAGABLE
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
Definition: classpnp.h:1117
_In_ PDEVICE_OBJECT Pdo
Definition: classpnp.h:301
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
Definition: rtlfuncs.h:201
LONG NTSTATUS
Definition: precomp.h:26
DEVICE_STATE PnpState
Definition: precomp.h:127
struct _PDO_DEVICE_EXTENSION * PPDO_DEVICE_EXTENSION
#define FILE_DEVICE_MASS_STORAGE
Definition: imports.h:62
VOID FASTCALL KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:130
#define DO_DIRECT_IO
Definition: env_spec_w32.h:396
PFDO_DEVICE_EXTENSION FdoExtension
Definition: precomp.h:126
PVOID DeviceExtension
Definition: env_spec_w32.h:418
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
#define FILE_AUTOGENERATED_DEVICE_NAME
Definition: iotypes.h:138
VOID FASTCALL KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:166
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
LIST_ENTRY PdoListEntry
Definition: precomp.h:128
_Must_inspect_result_ typedef _In_ ULONG _In_ BOOLEAN Target
Definition: iotypes.h:1068
PDEVICE_OBJECT Device
Definition: precomp.h:125
Status
Definition: gdiplustypes.h:24
EXTENSION_TYPE ExtensionType
Definition: precomp.h:123
#define DPRINT1
Definition: precomp.h:8
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)
Definition: device.c:1031
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
#define FILE_DEVICE_SECURE_OPEN
Definition: cdrw_usr.h:46
*LockHandle LockHandle _Out_ PKLOCK_QUEUE_HANDLE LockHandle
Definition: kefuncs.h:742
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortFdoScanBus().

◆ PortDeletePdo()

NTSTATUS PortDeletePdo ( _In_ PPDO_DEVICE_EXTENSION  PdoExtension)

Definition at line 87 of file pdo.c.

89 {
91 
92  DPRINT("PortDeletePdo(%p)\n", PdoExtension);
93 
94  /* Remove the PDO from the PDO list*/
95  KeAcquireInStackQueuedSpinLock(&PdoExtension->FdoExtension->PdoListLock,
96  &LockHandle);
97  RemoveEntryList(&PdoExtension->PdoListEntry);
98  PdoExtension->FdoExtension->PdoCount--;
100 
101  if (PdoExtension->InquiryBuffer)
102  {
104  PdoExtension->InquiryBuffer = NULL;
105  }
106 
107 
108  // FIXME: More uninitialization
109 
110 
111  /* Delete the PDO */
112  IoDeleteDevice(PdoExtension->Device);
113 
114  return STATUS_SUCCESS;
115 }
VOID FASTCALL KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:130
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:105
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
VOID FASTCALL KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
Definition: spinlock.c:166
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
Definition: device.c:1251
*LockHandle LockHandle _Out_ PKLOCK_QUEUE_HANDLE LockHandle
Definition: kefuncs.h:742
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1099
return STATUS_SUCCESS
Definition: btrfs.c:2966
#define TAG_INQUIRY_DATA
Definition: precomp.h:32

Referenced by PortFdoScanBus().

◆ PortFdoPnp()

NTSTATUS NTAPI PortFdoPnp ( _In_ PDEVICE_OBJECT  DeviceObject,
_In_ PIRP  Irp 
)

Definition at line 588 of file fdo.c.

591 {
592  PFDO_DEVICE_EXTENSION DeviceExtension;
593  PIO_STACK_LOCATION Stack;
596 
597  DPRINT1("PortFdoPnp(%p %p)\n",
598  DeviceObject, Irp);
599 
601  ASSERT(DeviceExtension);
602  ASSERT(DeviceExtension->ExtensionType == FdoExtension);
603 
605 
606  switch (Stack->MinorFunction)
607  {
608  case IRP_MN_START_DEVICE: /* 0x00 */
609  DPRINT1("IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
610  Status = PortFdoStartDevice(DeviceExtension, Irp);
611  break;
612 
613  case IRP_MN_QUERY_REMOVE_DEVICE: /* 0x01 */
614  DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_REMOVE_DEVICE\n");
615  break;
616 
617  case IRP_MN_REMOVE_DEVICE: /* 0x02 */
618  DPRINT1("IRP_MJ_PNP / IRP_MN_REMOVE_DEVICE\n");
619  break;
620 
621  case IRP_MN_CANCEL_REMOVE_DEVICE: /* 0x03 */
622  DPRINT1("IRP_MJ_PNP / IRP_MN_CANCEL_REMOVE_DEVICE\n");
623  break;
624 
625  case IRP_MN_STOP_DEVICE: /* 0x04 */
626  DPRINT1("IRP_MJ_PNP / IRP_MN_STOP_DEVICE\n");
627  break;
628 
629  case IRP_MN_QUERY_STOP_DEVICE: /* 0x05 */
630  DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_STOP_DEVICE\n");
631  break;
632 
633  case IRP_MN_CANCEL_STOP_DEVICE: /* 0x06 */
634  DPRINT1("IRP_MJ_PNP / IRP_MN_CANCEL_STOP_DEVICE\n");
635  break;
636 
637  case IRP_MN_QUERY_DEVICE_RELATIONS: /* 0x07 */
638  DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS\n");
639  switch (Stack->Parameters.QueryDeviceRelations.Type)
640  {
641  case BusRelations:
642  DPRINT1(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / BusRelations\n");
643  Status = PortFdoQueryBusRelations(DeviceExtension, &Information);
644  break;
645 
646  case RemovalRelations:
647  DPRINT1(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / RemovalRelations\n");
648  return ForwardIrpAndForget(DeviceExtension->LowerDevice, Irp);
649 
650  default:
651  DPRINT1(" IRP_MJ_PNP / IRP_MN_QUERY_DEVICE_RELATIONS / Unknown type 0x%lx\n",
652  Stack->Parameters.QueryDeviceRelations.Type);
653  return ForwardIrpAndForget(DeviceExtension->LowerDevice, Irp);
654  }
655  break;
656 
657  case IRP_MN_FILTER_RESOURCE_REQUIREMENTS: /* 0x0d */
658  DPRINT1("IRP_MJ_PNP / IRP_MN_FILTER_RESOURCE_REQUIREMENTS\n");
659  PortFdoFilterRequirements(DeviceExtension, Irp);
660  return ForwardIrpAndForget(DeviceExtension->LowerDevice, Irp);
661 
662  case IRP_MN_QUERY_PNP_DEVICE_STATE: /* 0x14 */
663  DPRINT1("IRP_MJ_PNP / IRP_MN_QUERY_PNP_DEVICE_STATE\n");
664  break;
665 
666  case IRP_MN_DEVICE_USAGE_NOTIFICATION: /* 0x16 */
667  DPRINT1("IRP_MJ_PNP / IRP_MN_DEVICE_USAGE_NOTIFICATION\n");
668  break;
669 
670  case IRP_MN_SURPRISE_REMOVAL: /* 0x17 */
671  DPRINT1("IRP_MJ_PNP / IRP_MN_SURPRISE_REMOVAL\n");
672  break;
673 
674  default:
675  DPRINT1("IRP_MJ_PNP / Unknown IOCTL 0x%lx\n", Stack->MinorFunction);
676  return ForwardIrpAndForget(DeviceExtension->LowerDevice, Irp);
677  }
678 
679  Irp->IoStatus.Information = Information;
680  Irp->IoStatus.Status = Status;
682 
683  return Status;
684 }
#define IRP_MN_CANCEL_REMOVE_DEVICE
#define IRP_MN_REMOVE_DEVICE
_In_ PIRP Irp
Definition: csq.h:116
#define IRP_MN_FILTER_RESOURCE_REQUIREMENTS
LONG NTSTATUS
Definition: precomp.h:26
EXTENSION_TYPE ExtensionType
Definition: precomp.h:92
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
uint32_t ULONG_PTR
Definition: typedefs.h:63
#define IRP_MN_QUERY_REMOVE_DEVICE
PVOID DeviceExtension
Definition: env_spec_w32.h:418
#define IoCompleteRequest
Definition: irp.c:1240
#define IRP_MN_QUERY_STOP_DEVICE
#define IRP_MN_SURPRISE_REMOVAL
Definition: ntifs_ex.h:408
#define IRP_MN_STOP_DEVICE
#define IRP_MN_START_DEVICE
static NTSTATUS PortFdoFilterRequirements(PFDO_DEVICE_EXTENSION DeviceExtension, PIRP Irp)
Definition: fdo.c:538
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
NTSTATUS NTAPI ForwardIrpAndForget(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: fdo.c:66
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2745
static NTSTATUS PortFdoQueryBusRelations(_In_ PFDO_DEVICE_EXTENSION DeviceExtension, _Out_ PULONG_PTR Information)
Definition: fdo.c:517
static NTSTATUS NTAPI PortFdoStartDevice(_In_ PFDO_DEVICE_EXTENSION DeviceExtension, _In_ PIRP Irp)
Definition: fdo.c:176
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define DPRINT1
Definition: precomp.h:8
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:409
#define IO_NO_INCREMENT
Definition: iotypes.h:566
PDEVICE_OBJECT LowerDevice
Definition: i8042prt.h:130
#define IRP_MN_CANCEL_STOP_DEVICE
#define IRP_MN_DEVICE_USAGE_NOTIFICATION
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:2772
#define IRP_MN_QUERY_PNP_DEVICE_STATE
Iosb Information
Definition: create.c:4377

Referenced by PortDispatchPnp().

◆ PortFdoScsi()

NTSTATUS NTAPI PortFdoScsi ( _In_ PDEVICE_OBJECT  DeviceObject,
_In_ PIRP  Irp 
)

Definition at line 560 of file fdo.c.

563 {
564  PFDO_DEVICE_EXTENSION DeviceExtension;
565 // PIO_STACK_LOCATION Stack;
568 
569  DPRINT("PortFdoScsi(%p %p)\n", DeviceObject, Irp);
570 
572  ASSERT(DeviceExtension);
573  ASSERT(DeviceExtension->ExtensionType == FdoExtension);
574 
575 // Stack = IoGetCurrentIrpStackLocation(Irp);
576 
577 
578  Irp->IoStatus.Information = Information;
579  Irp->IoStatus.Status = Status;
581 
582  return Status;
583 }
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
EXTENSION_TYPE ExtensionType
Definition: precomp.h:92
struct _FDO_DEVICE_EXTENSION * PFDO_DEVICE_EXTENSION
uint32_t ULONG_PTR
Definition: typedefs.h:63
PVOID DeviceExtension
Definition: env_spec_w32.h:418
#define IoCompleteRequest
Definition: irp.c:1240
void DPRINT(...)
Definition: polytest.cpp:61
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:409
#define IO_NO_INCREMENT
Definition: iotypes.h:566
Iosb Information
Definition: create.c:4377

Referenced by PortDispatchScsi().

◆ PortGetDriverInitData()

PHW_INITIALIZATION_DATA PortGetDriverInitData ( PDRIVER_OBJECT_EXTENSION  DriverExtension,
INTERFACE_TYPE  InterfaceType 
)

Definition at line 78 of file storport.c.

81 {
82  PDRIVER_INIT_DATA InitData;
83  PLIST_ENTRY ListEntry;
84 
85  DPRINT1("PortGetDriverInitData()\n");
86 
87  ListEntry = DriverExtension->InitDataListHead.Flink;
88  while (ListEntry != &DriverExtension->InitDataListHead)
89  {
90  InitData = CONTAINING_RECORD(ListEntry,
92  Entry);
93  if (InitData->HwInitData.AdapterInterfaceType == InterfaceType)
94  return &InitData->HwInitData;
95 
96  ListEntry = ListEntry->Flink;
97  }
98 
99  return NULL;
100 }
smooth NULL
Definition: ftsmooth.c:416
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)
Definition: Messaging.c:560
struct _LIST_ENTRY * Flink
Definition: typedefs.h:119
Definition: typedefs.h:117
PPCI_DRIVER_EXTENSION DriverExtension
Definition: pci.c:41
#define DPRINT1
Definition: precomp.h:8
INTERFACE_TYPE AdapterInterfaceType
Definition: srb.h:557
base of all file and directory entries
Definition: entries.h:82
HW_INITIALIZATION_DATA HwInitData
Definition: precomp.h:55

Referenced by PortFdoStartMiniport().

◆ PortPdoPnp()

NTSTATUS NTAPI PortPdoPnp ( _In_ PDEVICE_OBJECT  DeviceObject,
_In_ PIRP  Irp 
)

Definition at line 135 of file pdo.c.

138 {
139  DPRINT1("PortPdoPnp(%p %p)\n", DeviceObject, Irp);
140 
141  Irp->IoStatus.Information = 0;
142  Irp->IoStatus.Status = STATUS_SUCCESS;
144  return STATUS_SUCCESS;
145 }
_In_ PIRP Irp
Definition: csq.h:116
#define IoCompleteRequest
Definition: irp.c:1240
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
#define DPRINT1
Definition: precomp.h:8
#define IO_NO_INCREMENT
Definition: iotypes.h:566
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortDispatchPnp().

◆ PortPdoScsi()

NTSTATUS NTAPI PortPdoScsi ( _In_ PDEVICE_OBJECT  DeviceObject,
_In_ PIRP  Irp 
)

Definition at line 120 of file pdo.c.

123 {
124  DPRINT1("PortPdoScsi(%p %p)\n", DeviceObject, Irp);
125 
126  Irp->IoStatus.Information = 0;
127  Irp->IoStatus.Status = STATUS_SUCCESS;
129  return STATUS_SUCCESS;
130 }
_In_ PIRP Irp
Definition: csq.h:116
#define IoCompleteRequest
Definition: irp.c:1240
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
#define DPRINT1
Definition: precomp.h:8
#define IO_NO_INCREMENT
Definition: iotypes.h:566
return STATUS_SUCCESS
Definition: btrfs.c:2966

Referenced by PortDispatchScsi().

◆ QueryBusInterface()

NTSTATUS QueryBusInterface ( PDEVICE_OBJECT  DeviceObject,
PGUID  Guid,
USHORT  Size,
USHORT  Version,
PBUS_INTERFACE_STANDARD  Interface,
PVOID  InterfaceSpecificData 
)

Definition at line 162 of file misc.c.

169 {
170  KEVENT Event;
172  PIRP Irp;
174  PIO_STACK_LOCATION Stack;
175 
177 
179  DeviceObject,
180  NULL,
181  0,
182  NULL,
183  &Event,
184  &IoStatus);
185  if (Irp == NULL)
187 
189 
190  Stack->MajorFunction = IRP_MJ_PNP;
192  Stack->Parameters.QueryInterface.InterfaceType = Guid;
193  Stack->Parameters.QueryInterface.Size = Size;
194  Stack->Parameters.QueryInterface.Version = Version;
195  Stack->Parameters.QueryInterface.Interface = (PINTERFACE)Interface;
196  Stack->Parameters.QueryInterface.InterfaceSpecificData = InterfaceSpecificData;
197 
198  Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
199 
201  if (Status == STATUS_PENDING)
202  {
204 
205  Status=IoStatus.Status;
206  }
207 
208  return Status;
209 }
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
IN PLARGE_INTEGER IN ULONG IN BOOLEAN IN ULONG IN BOOLEAN OUT PIO_STATUS_BLOCK IoStatus
Definition: fatprocs.h:2650
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
Definition: irp.c:1069
_In_ PIRP Irp
Definition: csq.h:116
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
_In_ PVOID _In_ ULONG Event
Definition: iotypes.h:435
static GUID * Guid
Definition: apphelp.c:93
smooth NULL
Definition: ftsmooth.c:416
struct _INTERFACE * PINTERFACE
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
Definition: pci.h:359
#define STATUS_PENDING
Definition: ntstatus.h:82
#define IRP_MN_QUERY_INTERFACE
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetNextIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2647
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1560
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1218
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define STATUS_NOT_SUPPORTED
Definition: ntstatus.h:409
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:2772

Referenced by PortFdoStartDevice().

◆ TranslateResourceListAddress()

BOOLEAN TranslateResourceListAddress ( PFDO_DEVICE_EXTENSION  DeviceExtension,
INTERFACE_TYPE  BusType,
ULONG  SystemIoBusNumber,
STOR_PHYSICAL_ADDRESS  IoAddress,
ULONG  NumberOfBytes,
BOOLEAN  InIoSpace,
PPHYSICAL_ADDRESS  TranslatedAddress 
)

Definition at line 213 of file misc.c.

221 {
222  PCM_FULL_RESOURCE_DESCRIPTOR FullDescriptorA, FullDescriptorT;
223  PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptorA, PartialDescriptorT;
224  INT i, j;
225 
226  DPRINT1("TranslateResourceListAddress(%p)\n", DeviceExtension);
227 
228  FullDescriptorA = DeviceExtension->AllocatedResources->List;
229  FullDescriptorT = DeviceExtension->TranslatedResources->List;
230  for (i = 0; i < DeviceExtension->AllocatedResources->Count; i++)
231  {
232  for (j = 0; j < FullDescriptorA->PartialResourceList.Count; j++)
233  {
234  PartialDescriptorA = FullDescriptorA->PartialResourceList.PartialDescriptors + j;
235  PartialDescriptorT = FullDescriptorT->PartialResourceList.PartialDescriptors + j;
236 
237  switch (PartialDescriptorA->Type)
238  {
239  case CmResourceTypePort:
240  DPRINT1("Port: 0x%I64x (0x%lx)\n",
241  PartialDescriptorA->u.Port.Start.QuadPart,
242  PartialDescriptorA->u.Port.Length);
243  if (InIoSpace &&
244  IoAddress.QuadPart >= PartialDescriptorA->u.Port.Start.QuadPart &&
245  IoAddress.QuadPart + NumberOfBytes <= PartialDescriptorA->u.Port.Start.QuadPart + PartialDescriptorA->u.Port.Length)
246  {
247  TranslatedAddress->QuadPart = PartialDescriptorT->u.Port.Start.QuadPart +
248  (IoAddress.QuadPart - PartialDescriptorA->u.Port.Start.QuadPart);
249  return TRUE;
250  }
251  break;
252 
254  DPRINT1("Memory: 0x%I64x (0x%lx)\n",
255  PartialDescriptorA->u.Memory.Start.QuadPart,
256  PartialDescriptorA->u.Memory.Length);
257  if (!InIoSpace &&
258  IoAddress.QuadPart >= PartialDescriptorA->u.Memory.Start.QuadPart &&
259  IoAddress.QuadPart + NumberOfBytes <= PartialDescriptorA->u.Memory.Start.QuadPart + PartialDescriptorA->u.Memory.Length)
260  {
261  TranslatedAddress->QuadPart = PartialDescriptorT->u.Memory.Start.QuadPart +
262  (IoAddress.QuadPart - PartialDescriptorA->u.Memory.Start.QuadPart);
263  return TRUE;
264  }
265  break;
266  }
267  }
268 
269  /* Advance to next CM_FULL_RESOURCE_DESCRIPTOR block in memory. */
270  FullDescriptorA = (PCM_FULL_RESOURCE_DESCRIPTOR)(FullDescriptorA->PartialResourceList.PartialDescriptors +
271  FullDescriptorA->PartialResourceList.Count);
272 
273  FullDescriptorT = (PCM_FULL_RESOURCE_DESCRIPTOR)(FullDescriptorT->PartialResourceList.PartialDescriptors +
274  FullDescriptorT->PartialResourceList.Count);
275  }
276 
277  return FALSE;
278 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define TRUE
Definition: types.h:120
CM_FULL_RESOURCE_DESCRIPTOR List[1]
Definition: hwresource.cpp:165
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2268
int32_t INT
Definition: typedefs.h:56
#define CmResourceTypePort
Definition: hwresource.cpp:123
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@371::@376 Memory
CM_PARTIAL_RESOURCE_LIST PartialResourceList
Definition: hwresource.cpp:160
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _CM_FULL_RESOURCE_DESCRIPTOR * PCM_FULL_RESOURCE_DESCRIPTOR
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@371 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@371::@373 Port
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
Definition: hwresource.cpp:119
#define DPRINT1
Definition: precomp.h:8
PCM_RESOURCE_LIST TranslatedResources
Definition: precomp.h:104
#define CmResourceTypeMemory
Definition: hwresource.cpp:125
LONGLONG QuadPart
Definition: typedefs.h:112
PCM_RESOURCE_LIST AllocatedResources
Definition: precomp.h:103

Referenced by StorPortGetDeviceBase().