ReactOS 0.4.17-dev-1281-g065abb3
hostctl.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _UCXHUB_WORKITEM
 
struct  UcxAddress0QueueContext
 
struct  UcxFdoContext
 
class  UcxController
 

Macros

#define UCX_CONFIG_SIZE_V1   FIELD_OFFSET(UCX_CONTROLLER_CONFIG, ManufacturerNameString)
 
#define UCX_CONFIG_SIZE_V3   FIELD_OFFSET(UCX_CONTROLLER_CONFIG, EvtControllerGetTransportCharacteristics)
 
#define UCX_CONFIG_SIZE_V4   sizeof(UCX_CONTROLLER_CONFIG)
 

Typedefs

typedef NTSTATUS(NTAPI * PFN_UCX_HCD_GET_BANDWIDTH_INFORMATION) (_In_ UCXCONTROLLER Controller)
 
typedef _In_ UCXUSBDEVICE UsbDevice
 
typedef _In_ UCXUSBDEVICE _In_ PVOID DumpDeviceInfo
 
typedef _In_ UCXUSBDEVICE _In_ PVOID _Out_ PVOID DumpControllerInfo
 
typedef struct _UCXHUB_WORKITEM UcxWorkItem
 
typedef VOID(NTAPI * PFN_UCX_DEVICE_VISITOR) (_In_ UcxUsbDevice *Device, _In_opt_ PVOID Context)
 

Functions

typedef _IRQL_requires_ (PASSIVE_LEVEL) NTSTATUS(NTAPI *PFN_UCX_HCD_ENABLE_FORWARD_PROGRESS)(_In_ UCXCONTROLLER Controller)
 Sends a synchronous IOCTL to the specified device object.
 
 WDF_DECLARE_CONTEXT_TYPE_WITH_NAME (UcxAddress0QueueContext, UcxGetAddress0QueueContext)
 
 WDF_DECLARE_CONTEXT_TYPE_WITH_NAME (UcxFdoContext, UcxGetFdoContext)
 
 WDF_DECLARE_CONTEXT_TYPE_WITH_NAME (UcxController, UcxGetControllerContext)
 

Variables

EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtAddress0IoInternalDeviceControl
 
EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtDefaultIoInternalDeviceControl
 
EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS UcxEvtDefaultQueueExamineIrp
 
IO_CSQ_INSERT_IRP UcxCsqInsertAbortIrp
 
IO_CSQ_REMOVE_IRP UcxCsqRemoveAbortIrp
 
IO_CSQ_PEEK_NEXT_IRP UcxCsqPeekAbortIrp
 
IO_CSQ_ACQUIRE_LOCK UcxCsqAcquireAbortLock
 
IO_CSQ_RELEASE_LOCK UcxCsqReleaseAbortLock
 
IO_CSQ_COMPLETE_CANCELED_IRP UcxCsqCompleteCanceledAbortIrp
 

Macro Definition Documentation

◆ UCX_CONFIG_SIZE_V1

Definition at line 43 of file hostctl.h.

◆ UCX_CONFIG_SIZE_V3

#define UCX_CONFIG_SIZE_V3   FIELD_OFFSET(UCX_CONTROLLER_CONFIG, EvtControllerGetTransportCharacteristics)

Definition at line 44 of file hostctl.h.

◆ UCX_CONFIG_SIZE_V4

#define UCX_CONFIG_SIZE_V4   sizeof(UCX_CONTROLLER_CONFIG)

Definition at line 45 of file hostctl.h.

Typedef Documentation

◆ DumpControllerInfo

Definition at line 33 of file hostctl.h.

◆ DumpDeviceInfo

typedef _In_ UCXUSBDEVICE _In_ PVOID DumpDeviceInfo

Definition at line 32 of file hostctl.h.

◆ PFN_UCX_DEVICE_VISITOR

typedef VOID(NTAPI * PFN_UCX_DEVICE_VISITOR) (_In_ UcxUsbDevice *Device, _In_opt_ PVOID Context)

Definition at line 107 of file hostctl.h.

◆ PFN_UCX_HCD_GET_BANDWIDTH_INFORMATION

typedef NTSTATUS(NTAPI * PFN_UCX_HCD_GET_BANDWIDTH_INFORMATION) (_In_ UCXCONTROLLER Controller)

Definition at line 16 of file hostctl.h.

◆ UcxWorkItem

Definition at line 85 of file hostctl.h.

◆ UsbDevice

_In_ WDFUSBDEVICE UsbDevice
Initial value:
{
PFN_UCXUSBDEVICECREATE Create
@ Create
Definition: registry.c:563

Definition at line 31 of file hostctl.h.

Function Documentation

◆ _IRQL_requires_()

typedef _IRQL_requires_ ( PASSIVE_LEVEL  )

Sends a synchronous IOCTL to the specified device object.

Parameters
[in]IoControlCodeThe IOCTL to send to the device.
[in]DeviceObjectPointer to the device object that will handle the IOCTL.
[in]InputBufferOptional pointer to a buffer containing input data for the IOCTL. When specified, the buffer should be at least of InputBufferLength size.
[in]InputBufferLengthSize in bytes, of the buffer pointed by InputBuffer.
[out]OutputBufferOptional pointer to a buffer that will receive output data from the IOCTL. When specified, the buffer should be at least of OutputBufferLength size.
[in]OutputBufferLengthSize in bytes, of the buffer pointed by OutputBuffer.
[in]FileObjectOptional pointer to a file object that may be necessary for the IOCTL.
Returns
An NTSTATUS code indicating success or failure of this function.
Note
Must be called at PASSIVE_LEVEL with all APCs enabled.

Definition at line 2121 of file class.c.

13175{
13177
13178 PAGED_CODE();
13179
13180 TracePrint((TRACE_LEVEL_VERBOSE,
13181 TRACE_FLAG_PNP,
13182 "ClassDetermineTokenOperationCommandSupport (%p): Entering function.\n",
13183 DeviceObject));
13184
13185 //
13186 // Send down Inquiry for VPD_THIRD_PARTY_COPY_PAGE and cache away the device parameters
13187 // from WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR.
13188 //
13190
13191 if (NT_SUCCESS(status)) {
13192
13193 ULONG maxListIdentifier = MaxTokenOperationListIdentifier;
13194
13195 //
13196 // Query the maximum list identifier to use for TokenOperation commands.
13197 //
13198 if (NT_SUCCESS(ClasspGetMaximumTokenListIdentifier(DeviceObject, REG_DISK_CLASS_CONTROL, &maxListIdentifier))) {
13199 if (maxListIdentifier >= MIN_TOKEN_LIST_IDENTIFIERS) {
13200
13201 NT_ASSERT(maxListIdentifier <= MAX_TOKEN_LIST_IDENTIFIERS);
13202 MaxTokenOperationListIdentifier = maxListIdentifier;
13203 }
13204 }
13205
13206 }
13207
13208 TracePrint((TRACE_LEVEL_VERBOSE,
13209 TRACE_FLAG_PNP,
13210 "ClassDetermineTokenOperationCommandSupport (%p): Exiting function with status %x.\n",
13212 status));
13213
13214 return status;
13215}
#define PAGED_CODE()
LONG NTSTATUS
Definition: precomp.h:26
#define REG_DISK_CLASS_CONTROL
Definition: classp.h:218
#define MAX_TOKEN_LIST_IDENTIFIERS
Definition: classp.h:215
#define MIN_TOKEN_LIST_IDENTIFIERS
Definition: classp.h:214
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
ULONG MaxTokenOperationListIdentifier
Definition: class.c:107
_IRQL_requires_same_ NTSTATUS ClasspGetBlockDeviceTokenLimitsInfo(_Inout_ PDEVICE_OBJECT DeviceObject)
Definition: class.c:13220
#define STATUS_SUCCESS
Definition: shellext.h:65
#define TRACE_LEVEL_VERBOSE
Definition: storswtr.h:30
Definition: ps.c:97
uint32_t ULONG
Definition: typedefs.h:59
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
#define NT_ASSERT
Definition: rtlfuncs.h:3334

◆ WDF_DECLARE_CONTEXT_TYPE_WITH_NAME() [1/3]

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME ( UcxAddress0QueueContext  ,
UcxGetAddress0QueueContext   
)

◆ WDF_DECLARE_CONTEXT_TYPE_WITH_NAME() [2/3]

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME ( UcxController  ,
UcxGetControllerContext   
)

◆ WDF_DECLARE_CONTEXT_TYPE_WITH_NAME() [3/3]

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME ( UcxFdoContext  ,
UcxGetFdoContext   
)

Variable Documentation

◆ UcxCsqAcquireAbortLock

IO_CSQ_ACQUIRE_LOCK UcxCsqAcquireAbortLock

Definition at line 405 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxCsqCompleteCanceledAbortIrp

IO_CSQ_COMPLETE_CANCELED_IRP UcxCsqCompleteCanceledAbortIrp

Definition at line 407 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxCsqInsertAbortIrp

IO_CSQ_INSERT_IRP UcxCsqInsertAbortIrp

Definition at line 402 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxCsqPeekAbortIrp

IO_CSQ_PEEK_NEXT_IRP UcxCsqPeekAbortIrp

Definition at line 404 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxCsqReleaseAbortLock

IO_CSQ_RELEASE_LOCK UcxCsqReleaseAbortLock

Definition at line 406 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxCsqRemoveAbortIrp

IO_CSQ_REMOVE_IRP UcxCsqRemoveAbortIrp

Definition at line 403 of file hostctl.h.

Referenced by UcxController::Initialize().

◆ UcxEvtAddress0IoInternalDeviceControl

EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtAddress0IoInternalDeviceControl

Definition at line 397 of file hostctl.h.

Referenced by UcxController::CreateQueues().

◆ UcxEvtDefaultIoInternalDeviceControl

EVT_WDF_IO_QUEUE_IO_INTERNAL_DEVICE_CONTROL UcxEvtDefaultIoInternalDeviceControl

Definition at line 398 of file hostctl.h.

Referenced by UcxController::CreateQueues().

◆ UcxEvtDefaultQueueExamineIrp

EVT_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS UcxEvtDefaultQueueExamineIrp

Definition at line 399 of file hostctl.h.

Referenced by UcxController::CreateQueues().