ReactOS 0.4.17-dev-1037-g720d112
ucx01000.h File Reference
#include <ntddk.h>
#include <windef.h>
#include <fxldr.h>
#include <wdf.h>
#include <ucxclass.h>
Include dependency graph for ucx01000.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define UCX_POOL_TAG   'xcUR'
 
#define UCX_CLASS_MAJOR_VERSION   1
 
#define UCX_CLASS_MINOR_VERSION   7
 

Functions

 _IRQL_requires_ (PASSIVE_LEVEL) NTSTATUS NTAPI UcxOnClassLoad(VOID)
 Sends a synchronous IOCTL to the specified device object.
 
_Must_inspect_result_ _IRQL_requires_max_ (DISPATCH_LEVEL) BOOLEAN NTAPI UcxApiIoDeviceControl(_In_ PUCX_DRIVER_GLOBALS DriverGlobals
 
VOID NTAPI UcxApiUsbDeviceInitSetEventCallbacks (_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXUSBDEVICE_INIT UsbDeviceInit, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks)
 
VOID NTAPI UcxApiEndpointInitSetEventCallbacks (_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
 
VOID NTAPI UcxApiDefaultEndpointInitSetEventCallbacks (_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
 
VOID NTAPI UcxApiEndpointSetWdfIoQueue (_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _In_ UCXENDPOINT Endpoint, _In_ WDFQUEUE WdfQueue)
 
VOID NTAPI UcxApiStaticStreamsSetStreamInfo (_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _In_ UCXSSTREAMS StaticStreams, _In_ PSTREAM_INFO StreamInfo)
 

Variables

WDF_CLASS_LIBRARY_INFO UcxClassLibraryInfo
 
_Out_ PWDF_COMPONENT_GLOBALS * ComponentGlobals
 
_Must_inspect_result_ _In_ WDFDEVICE Device
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t OutputBufferLength
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
 
_In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo
 
_Must_inspect_result_ _In_ UCXCONTROLLER _In_ PUCX_ROOTHUB_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXROOTHUB * RootHub
 
_In_ UCXROOTHUB UcxRootHub
 
_Must_inspect_result_ _In_ UCXCONTROLLER _Inout_ PUCXUSBDEVICE_INIT * UsbDeviceInit
 
_Must_inspect_result_ _In_ UCXCONTROLLER _Inout_ PUCXUSBDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXUSBDEVICE * UsbDevice
 
_In_ UCXUSBDEVICE _In_ ULONG Interface
 
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT * EndpointInit
 
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXENDPOINT * Endpoint
 
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
 
_Must_inspect_result_ _In_ UCXENDPOINT _Inout_ PUCXSSTREAMS_INIT * StaticStreamsInit
 
_Must_inspect_result_ _In_ UCXENDPOINT _Inout_ PUCXSSTREAMS_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXSSTREAMS * StaticStreams
 
_Inout_ PWDFDEVICE_INIT DeviceInit
 
_In_ UCXCONTROLLER _In_ PUNICODE_STRING ManufacturerNameString
 
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNameString
 
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNumberString
 
_In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UcxControllerTransportCharacteristics
 

Macro Definition Documentation

◆ UCX_CLASS_MAJOR_VERSION

#define UCX_CLASS_MAJOR_VERSION   1

Definition at line 18 of file ucx01000.h.

◆ UCX_CLASS_MINOR_VERSION

#define UCX_CLASS_MINOR_VERSION   7

Definition at line 19 of file ucx01000.h.

◆ UCX_POOL_TAG

#define UCX_POOL_TAG   'xcUR'

Definition at line 16 of file ucx01000.h.

Function Documentation

◆ _IRQL_requires_()

_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

◆ _IRQL_requires_max_()

_Must_inspect_result_ _IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 77 of file common.c.

3587{
3589 BOOLEAN requestSent = FALSE;
3590
3591 BOOLEAN shouldRetry = TRUE;
3592 PCDB cdb = (PCDB)DeviceExtension->PowerContext.Srb.Cdb;
3593 ULONG timeoutValue = DeviceExtension->TimeOutValue;
3594 ULONG retryCount = 1;
3595
3596 // reset some fields.
3597 DeviceExtension->PowerContext.RetryIntervalIn100ns = 0;
3598 status = PowerContextReuseRequest(DeviceExtension);
3599 RequestClearSendTime(DeviceExtension->PowerContext.PowerRequest);
3600
3601 if (!NT_SUCCESS(status))
3602 {
3603 return status;
3604 }
3605
3606 // set proper timeout value and max retry count.
3607 switch(DeviceExtension->PowerContext.PowerChangeState.PowerDown)
3608 {
3612 break;
3613
3615 // Case of issuing SYNC CACHE command. Do not use power irp timeout remaining time in this case
3616 // as we want to give best try on SYNC CACHE command.
3617 retryCount = MAXIMUM_RETRIES;
3618 timeoutValue = DeviceExtension->TimeOutValue;
3619 break;
3620
3622 {
3623 // Case of issuing STOP UNIT command
3624 // As "Imme" bit is set to '1', this command should be completed in short time.
3625 // This command is at low importance, failure of this command has very small impact.
3626 ULONG secondsRemaining = 0;
3627
3628#if (WINVER >= 0x0601)
3629 // this API is introduced in Windows7
3630 PoQueryWatchdogTime(DeviceExtension->LowerPdo, &secondsRemaining);
3631#endif
3632
3633 if (secondsRemaining == 0)
3634 {
3635 // not able to retrieve remaining time from PoQueryWatchdogTime API, use default values.
3636 retryCount = MAXIMUM_RETRIES;
3637 timeoutValue = SCSI_CDROM_TIMEOUT;
3638 }
3639 else
3640 {
3641 // plan to leave about 30 seconds to lower level drivers if possible.
3642 if (secondsRemaining >= 32)
3643 {
3644 retryCount = (secondsRemaining - 30)/SCSI_CDROM_TIMEOUT + 1;
3645 timeoutValue = SCSI_CDROM_TIMEOUT;
3646
3647 if (retryCount > MAXIMUM_RETRIES)
3648 {
3649 retryCount = MAXIMUM_RETRIES;
3650 }
3651
3652 if (retryCount == 1)
3653 {
3654 timeoutValue = secondsRemaining - 30;
3655 }
3656 }
3657 else
3658 {
3659 // issue the command with minimal timeout value and do not retry on it.
3660 retryCount = 1;
3661 timeoutValue = 2;
3662 }
3663 }
3664 }
3665 break;
3666 default:
3667 NT_ASSERT( FALSE );
3669 return status;
3670 }
3671
3672 DeviceExtension->PowerContext.RetryCount = retryCount;
3673
3674 // issue command.
3675 while (shouldRetry)
3676 {
3677
3678 // set SRB fields.
3679 DeviceExtension->PowerContext.Srb.SrbFlags = SRB_FLAGS_NO_DATA_TRANSFER |
3684
3685 DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_EXECUTE_SCSI;
3686 DeviceExtension->PowerContext.Srb.TimeOutValue = timeoutValue;
3687
3688 if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceInitial)
3689 {
3690 DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_LOCK_QUEUE;
3691 }
3692 else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceLocked)
3693 {
3694 DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_QUIESCE_DEVICE;
3695 }
3696 else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3697 {
3698 // Case of issuing SYNC CACHE command.
3699 DeviceExtension->PowerContext.Srb.CdbLength = 10;
3700 cdb->SYNCHRONIZE_CACHE10.OperationCode = SCSIOP_SYNCHRONIZE_CACHE;
3701 }
3702 else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceFlushed)
3703 {
3704 // Case of issuing STOP UNIT command.
3705 DeviceExtension->PowerContext.Srb.CdbLength = 6;
3706 cdb->START_STOP.OperationCode = SCSIOP_START_STOP_UNIT;
3707 cdb->START_STOP.Start = 0;
3708 cdb->START_STOP.Immediate = 1;
3709 }
3710 else if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceStopped)
3711 {
3712 DeviceExtension->PowerContext.Srb.Function = SRB_FUNCTION_UNLOCK_QUEUE;
3713 }
3714
3715 // Set up completion routine and context if requested
3717 {
3718 WdfRequestSetCompletionRoutine(DeviceExtension->PowerContext.PowerRequest,
3720 Context);
3721 }
3722
3723 status = RequestSend(DeviceExtension,
3724 DeviceExtension->PowerContext.PowerRequest,
3725 DeviceExtension->IoTarget,
3727 &requestSent);
3728
3729 if (requestSent)
3730 {
3731 if ((CompletionRoutine == NULL) &&
3732 (SRB_STATUS(DeviceExtension->PowerContext.Srb.SrbStatus) != SRB_STATUS_SUCCESS))
3733 {
3734 TracePrint((TRACE_LEVEL_ERROR,
3735 TRACE_FLAG_POWER,
3736 "%p\tError occured when issuing %s command to device. Srb %p, Status %x\n",
3737 DeviceExtension->PowerContext.PowerRequest,
3738 (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced) ? "SYNC CACHE" : "STOP UNIT",
3739 &DeviceExtension->PowerContext.Srb,
3740 DeviceExtension->PowerContext.Srb.SrbStatus));
3741
3742 NT_ASSERT(!(TEST_FLAG(DeviceExtension->PowerContext.Srb.SrbStatus, SRB_STATUS_QUEUE_FROZEN)));
3743
3744 shouldRetry = RequestSenseInfoInterpret(DeviceExtension,
3745 DeviceExtension->PowerContext.PowerRequest,
3746 &(DeviceExtension->PowerContext.Srb),
3747 retryCount - DeviceExtension->PowerContext.RetryCount,
3748 &status,
3749 &(DeviceExtension->PowerContext.RetryIntervalIn100ns));
3750
3751 if (shouldRetry && (DeviceExtension->PowerContext.RetryCount-- == 0))
3752 {
3753 shouldRetry = FALSE;
3754 }
3755 }
3756 else
3757 {
3758 // succeeded, do not need to retry.
3759 shouldRetry = FALSE;
3760 }
3761
3762 }
3763 else
3764 {
3765 // request failed to be sent
3766 shouldRetry = FALSE;
3767 }
3768
3769 if (shouldRetry)
3770 {
3772 t.QuadPart = -DeviceExtension->PowerContext.RetryIntervalIn100ns;
3774
3775 status = PowerContextReuseRequest(DeviceExtension);
3776 if (!NT_SUCCESS(status))
3777 {
3778 shouldRetry = FALSE;
3779 }
3780 }
3781 }
3782
3783 if (DeviceExtension->PowerContext.PowerChangeState.PowerDown == PowerDownDeviceQuiesced)
3784 {
3785 // record SYNC CACHE command completion time stamp.
3786 KeQueryTickCount(&DeviceExtension->PowerContext.Step1CompleteTime);
3787 }
3788
3789 return status;
3790}
unsigned char BOOLEAN
Definition: actypes.h:127
#define MAXIMUM_RETRIES
Definition: cdrom.h:124
#define SCSI_CDROM_TIMEOUT
Definition: cdrom.h:680
BOOLEAN RequestSenseInfoInterpret(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG RetriedCount, _Out_ NTSTATUS *Status, _Out_opt_ _Deref_out_range_(0, MAXIMUM_RETRY_FOR_SINGLE_IO_IN_100NS_UNITS) LONGLONG *RetryIntervalIn100ns)
Definition: sense.c:2467
#define TEST_FLAG(Flags, Bit)
Definition: cdrom.h:1495
@ PowerDownDeviceStopped
Definition: cdrom.h:412
@ PowerDownDeviceQuiesced
Definition: cdrom.h:410
@ PowerDownDeviceInitial
Definition: cdrom.h:408
@ PowerDownDeviceLocked
Definition: cdrom.h:409
@ PowerDownDeviceFlushed
Definition: cdrom.h:411
union _CDB * PCDB
#define SCSIOP_START_STOP_UNIT
Definition: cdrw_hw.h:897
#define SCSIOP_SYNCHRONIZE_CACHE
Definition: cdrw_hw.h:918
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
NTSTATUS RequestSend(_In_ PCDROM_DEVICE_EXTENSION DeviceExtension, _In_ WDFREQUEST Request, _In_ WDFIOTARGET IoTarget, _In_ ULONG Flags, _Out_opt_ PBOOLEAN RequestSent)
Definition: common.c:3793
VOID RequestClearSendTime(_In_ WDFREQUEST Request)
Definition: common.c:111
#define SRB_FUNCTION_EXECUTE_SCSI
Definition: srb.h:315
#define SRB_FLAGS_NO_DATA_TRANSFER
Definition: srb.h:402
#define SRB_FUNCTION_LOCK_QUEUE
Definition: srb.h:332
#define SRB_FUNCTION_UNLOCK_QUEUE
Definition: srb.h:333
#define SRB_FLAGS_BYPASS_LOCKED_QUEUE
Definition: srb.h:410
#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER
Definition: srb.h:397
#define SRB_STATUS(Status)
Definition: srb.h:389
#define SRB_STATUS_QUEUE_FROZEN
Definition: srb.h:386
#define SRB_FLAGS_NO_QUEUE_FREEZE
Definition: srb.h:404
#define SRB_STATUS_SUCCESS
Definition: srb.h:341
#define KeDelayExecutionThread(mode, foo, t)
Definition: env_spec_w32.h:484
GLdouble GLdouble t
Definition: gl.h:2047
#define KernelMode
Definition: asm.h:38
#define SRB_FLAGS_D3_PROCESSING
Definition: srb.h:165
#define SRB_FUNCTION_QUIESCE_DEVICE
Definition: srb.h:99
#define KeQueryTickCount(CurrentCount)
Definition: ke.h:43
_In_ PVOID Context
Definition: storport.h:2269
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
Definition: cdrw_hw.h:28
struct _CDB::_START_STOP START_STOP
struct _CDB::_SYNCHRONIZE_CACHE10 SYNCHRONIZE_CACHE10
@ WDF_REQUEST_SEND_OPTION_SYNCHRONOUS
Definition: wdfrequest.h:109
_In_ WDFREQUEST _In_opt_ PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine
Definition: wdfrequest.h:895

◆ UcxApiDefaultEndpointInitSetEventCallbacks()

VOID NTAPI UcxApiDefaultEndpointInitSetEventCallbacks ( _In_ PUCX_DRIVER_GLOBALS  DriverGlobals,
_Inout_ PUCXENDPOINT_INIT  EndpointInit,
_In_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS  EventCallbacks 
)

Definition at line 299 of file exports.cpp.

303{
304 UNREFERENCED_PARAMETER(DriverGlobals);
306 UNREFERENCED_PARAMETER(EventCallbacks);
308}
UNIMPLEMENTED
Definition: exports.cpp:27
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT * EndpointInit
Definition: ucxendpoint.h:314

Referenced by _IRQL_requires_().

◆ UcxApiEndpointInitSetEventCallbacks()

VOID NTAPI UcxApiEndpointInitSetEventCallbacks ( _In_ PUCX_DRIVER_GLOBALS  DriverGlobals,
_Inout_ PUCXENDPOINT_INIT  EndpointInit,
_In_ PUCX_ENDPOINT_EVENT_CALLBACKS  EventCallbacks 
)

Definition at line 286 of file exports.cpp.

290{
291 UNREFERENCED_PARAMETER(DriverGlobals);
293 UNREFERENCED_PARAMETER(EventCallbacks);
295}

Referenced by _IRQL_requires_().

◆ UcxApiEndpointSetWdfIoQueue()

VOID NTAPI UcxApiEndpointSetWdfIoQueue ( _In_ PUCX_DRIVER_GLOBALS  DriverGlobals,
_In_ UCXENDPOINT  Endpoint,
_In_ WDFQUEUE  WdfQueue 
)

Definition at line 312 of file exports.cpp.

316{
317 UNREFERENCED_PARAMETER(DriverGlobals);
319 UNREFERENCED_PARAMETER(WdfQueue);
321}
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
Definition: hubucx.h:238

Referenced by _IRQL_requires_().

◆ UcxApiStaticStreamsSetStreamInfo()

VOID NTAPI UcxApiStaticStreamsSetStreamInfo ( _In_ PUCX_DRIVER_GLOBALS  DriverGlobals,
_In_ UCXSSTREAMS  StaticStreams,
_In_ PSTREAM_INFO  StreamInfo 
)

Definition at line 363 of file exports.cpp.

367{
368 UNREFERENCED_PARAMETER(DriverGlobals);
370 UNREFERENCED_PARAMETER(StreamInfo);
372}
_Must_inspect_result_ _In_ UCXENDPOINT _Inout_ PUCXSSTREAMS_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXSSTREAMS * StaticStreams
Definition: ucxsstreams.h:55

Referenced by _IRQL_requires_().

◆ UcxApiUsbDeviceInitSetEventCallbacks()

VOID NTAPI UcxApiUsbDeviceInitSetEventCallbacks ( _In_ PUCX_DRIVER_GLOBALS  DriverGlobals,
_Inout_ PUCXUSBDEVICE_INIT  UsbDeviceInit,
_In_ PUCX_USBDEVICE_EVENT_CALLBACKS  EventCallbacks 
)

Definition at line 207 of file exports.cpp.

211{
212 UNREFERENCED_PARAMETER(DriverGlobals);
214 UNREFERENCED_PARAMETER(EventCallbacks);
216}
_In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit

Referenced by _IRQL_requires_().

Variable Documentation

◆ Attributes

◆ ComponentGlobals

_In_ PWDF_COMPONENT_GLOBALS* ComponentGlobals

Definition at line 39 of file ucx01000.h.

◆ Config

Definition at line 67 of file ucx01000.h.

◆ Controller

_In_ UCXCONTROLLER Controller

Definition at line 69 of file ucx01000.h.

◆ Device

Definition at line 54 of file ucx01000.h.

◆ DeviceInit

Definition at line 230 of file ucx01000.h.

◆ Endpoint

Definition at line 146 of file ucx01000.h.

◆ EndpointInit

Definition at line 144 of file ucx01000.h.

◆ InputBufferLength

Definition at line 57 of file ucx01000.h.

◆ Interface

_In_ UCXUSBDEVICE _In_ ULONG Interface

Definition at line 135 of file ucx01000.h.

◆ IoControlCode

Definition at line 58 of file ucx01000.h.

◆ ManufacturerNameString

Definition at line 238 of file ucx01000.h.

◆ ModelNameString

Definition at line 239 of file ucx01000.h.

◆ ModelNumberString

◆ OutputBufferLength

Definition at line 56 of file ucx01000.h.

◆ Request

_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request

Definition at line 55 of file ucx01000.h.

◆ RootHub

◆ StaticStreams

◆ StaticStreamsInit

◆ Tag

Definition at line 155 of file ucx01000.h.

◆ UcxClassLibraryInfo

WDF_CLASS_LIBRARY_INFO UcxClassLibraryInfo

Definition at line 21 of file ucx01000.h.

◆ UcxControllerResetCompleteInfo

◆ UcxControllerTransportCharacteristics

◆ UcxRootHub

_In_ UCXROOTHUB UcxRootHub

Definition at line 109 of file ucx01000.h.

◆ UsbDevice

Definition at line 120 of file ucx01000.h.

◆ UsbDeviceInit

Definition at line 118 of file ucx01000.h.