ReactOS 0.4.17-dev-1321-g5c122a9
bdasup.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _BDA_PIN_PAIRING
 
struct  _BDA_FILTER_TEMPLATE
 
struct  _KSM_PIN_PAIR
 
struct  _KSM_PIN
 

Macros

#define STDMETHODCALLTYPE   __stdcall
 

Typedefs

typedef GUID * PGUID
 
typedef ULONG BDA_TOPOLOGY_JOINT
 
typedef ULONG * PBDA_TOPOLOGY_JOINT
 
typedef struct _BDA_PIN_PAIRING BDA_PIN_PAIRING
 
typedef struct _BDA_PIN_PAIRING * PBDA_PIN_PAIRING
 
typedef struct _BDA_FILTER_TEMPLATE BDA_FILTER_TEMPLATE
 
typedef struct _BDA_FILTER_TEMPLATE * PBDA_FILTER_TEMPLATE
 
typedef struct _KSM_PIN_PAIR KSM_PIN_PAIR
 
typedef struct _KSM_PIN_PAIR * PKSM_PIN_PAIR
 
typedef struct _KSM_PIN KSM_PIN
 
typedef struct _KSM_PIN * PKSM_PIN
 

Functions

_Must_inspect_result_ _IRQL_requires_ (PASSIVE_LEVEL) BdaCheckChanges(_In_ PIRP Irp)
 Sends a synchronous IOCTL to the specified device object.
 
_Must_inspect_result_ _In_ KSPROPERTY _Out_writes_bytes_ (OutputBufferLenFromIrp(Irp)) ULONG *pulProperty)
 

Variables

_Must_inspect_result_ _In_ const KSFILTER_DESCRIPTOR * pFilterDescriptor
 
_Must_inspect_result_ _In_ const KSFILTER_DESCRIPTOR _In_ const BDA_FILTER_TEMPLATE * pBdaFilterTemplate
 
_Must_inspect_result_ _In_ const KSFILTER_DESCRIPTOR _In_ const BDA_FILTER_TEMPLATE _Out_opt_ PKSFILTERFACTORY * ppKSFilterFactory
 
_Must_inspect_result_ _In_ ULONG ulPinType
 
_Must_inspect_result_ _In_ ULONG _Out_opt_ ULONG * pulPinId
 
_Must_inspect_result_ _In_ ULONG InputPinId
 
_Must_inspect_result_ _In_ ULONG _In_ ULONG OutputPinId
 
_Must_inspect_result_ _Out_opt_ BDA_CHANGE_STATE * pChangeState
 
_Must_inspect_result_ _In_ KSMETHOD * pKSMethod
 
_Must_inspect_result_ _In_ KSMETHOD _Out_opt_ ULONG * pulPinFactoryID
 
_Must_inspect_result_ _In_ KSMETHOD PVOID pvIgnored
 
_Must_inspect_result_ _In_ KSP_BDA_NODE_PIN * pProperty
 
_Must_inspect_result_ _In_ KSP_BDA_NODE_PIN _Out_opt_ ULONG * pulControllingPinId
 
_Must_inspect_result_ _In_ KSPROPERTY * pKSProperty
 
_Must_inspect_result_ _In_ KSPROPERTY _Out_opt_ ULONG * pulProperty
 
_Must_inspect_result_ _In_ KSPROPERTY _Out_opt_ BDANODE_DESCRIPTOR * pNodeDescriptorProperty
 
_Must_inspect_result_ _In_ KSP_NODE _Out_opt_ GUID * pguidProperty
 
_Must_inspect_result_ _In_ KSPROPERTY _Out_opt_ KSTOPOLOGY_CONNECTION * pConnectionProperty
 

Macro Definition Documentation

◆ STDMETHODCALLTYPE

#define STDMETHODCALLTYPE   __stdcall

Definition at line 9 of file bdasup.h.

Typedef Documentation

◆ BDA_FILTER_TEMPLATE

◆ BDA_PIN_PAIRING

◆ BDA_TOPOLOGY_JOINT

Definition at line 17 of file bdasup.h.

◆ KSM_PIN

◆ KSM_PIN_PAIR

◆ PBDA_FILTER_TEMPLATE

◆ PBDA_PIN_PAIRING

◆ PBDA_TOPOLOGY_JOINT

Definition at line 17 of file bdasup.h.

◆ PGUID

typedef GUID* PGUID

Definition at line 12 of file bdasup.h.

◆ PKSM_PIN

◆ PKSM_PIN_PAIR

Function Documentation

◆ _IRQL_requires_()

_Must_inspect_result_ _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.

Nothing is found unless the PCI bus driver publishes the properties.

The root hub name without its prefix; NULL when the PDO has no name.

Grows a private buffer to what the helper asks for.

Lets KMDF handle the IRP, then hands it back here still uncompleted.

Waits for the device machine to answer a PnP or power event; returns the PnP status.

Deletes the UCX endpoints of the disabled pipes, then the interface record.

One 4 byte value; the registry type is not checked.

Reread whenever user experience settings change; the open status is returned.

Sends a synchronous IOCTL to the specified device object.

STATUS_SUCCESS when the caller's token is an administrator's.

Sends a synchronous IOCTL to the specified device object.

Reads one value of a walk. A missing value only clears Present; FALSE means stop.

Reads up to Size bytes of a value into a zeroed buffer; the type is not checked.

Writes a REG_BINARY value into the device's usbflags subkey.

Sets or clears ExtPropertiesInstalled from ExtPropDescSemaphore in the hardware key.

Fails only when a port cannot be bound to the USB4 host router its ACPI node names.

Assigns device, hardware, compatible, container and instance ids to a new child PDO.

Answers IRP_MN_QUERY_DEVICE_TEXT on a child PDO; always completes the IRP.

Takes the connector map lock, needed around HubConnectorFindCompanion.

Device hardware key values read at PDO prepare hardware.

Saves the MS OS 2.0 set info in usbflags when the set asks for alternate enumeration.

MsOs20Flags and EnumerationRetryCount, written at PDO start.

Rereads the UXD record; UpdateRequired says whether the device id changes.

Replacement PnP id of a UXD reserved device, or an empty String. Always succeeds.

Telemetry values under the device's Ceip subkey.

BootPathSurpriseRemovalCount + 1.

This machine's dual role features for a dual role partner.

Tells UCX the WDM PDO of the device; call right after the child PDO was created.

IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: Argument1 and its length Argument2.

IOCTL_INTERNAL_USB_GET_BUS_INFO for the device: the 16 byte USB_BUS_NOTIFICATION at Argument1.

Registers the GUID_USB_WMI_NODE_INFO instance of a child PDO (not for hubs or composites).

Registers the boot device surprise removal event on an external, non hub boot PDO.

Fires the boot device surprise removal event, if one is registered.

Sends a synchronous IOCTL to the specified device object.

Publishes "<port>#<host>" for every bound port on the hub's PDO. QUIRK: with no bound port an older value is left in place.

Binds USB 3 ports to the host routers named by the USB4 DVSEC; an earlier ACPI mapping wins.

Waits on a PnP handshake event with no timeout, printing a watchdog line every minute so a stuck machine is visible in the debugger.

Copies up to Size bytes of a device property; a failed query leaves the field zero.

Only the controller name length is real; both bandwidth fields read 0.

The answer overlays a USB_HUB_NAME on TotalSize, so TotalSize comes back as the name length + 4.

Evaluates a method without arguments into Output.

Drops every MSI descriptor and keeps only lists that still offer a line interrupt.

Picks the list with the best MSI offer: MSI-X first, then the most messages.

Keeps message descriptors covering Wanted messages and removes the others.

Evaluates _DSM on the controller ACPI object with a buffer as Arg3; returns up to 8 result bytes, 0 on failure.

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

◆ _Out_writes_bytes_()

_Must_inspect_result_ _In_ KSPROPERTY _Out_writes_bytes_ ( OutputBufferLenFromIrp(Irp)  )

Variable Documentation

◆ InputPinId

Definition at line 96 of file bdasup.h.

Referenced by BdaCreateTopology().

◆ OutputPinId

Definition at line 97 of file bdasup.h.

Referenced by BdaCreateTopology().

◆ pBdaFilterTemplate

Definition at line 72 of file bdasup.h.

Referenced by BdaCreateFilterFactory(), and BdaInitFilter().

◆ pChangeState

Definition at line 118 of file bdasup.h.

◆ pConnectionProperty

Definition at line 221 of file bdasup.h.

Referenced by BdaPropertyTemplateConnections().

◆ pFilterDescriptor

_Must_inspect_result_ _In_opt_ const KSFILTER_DESCRIPTOR * pFilterDescriptor

Definition at line 71 of file bdasup.h.

Referenced by BdaCreateFilterFactory(), and BdaCreateFilterFactoryEx().

◆ pguidProperty

Definition at line 181 of file bdasup.h.

◆ pKSMethod

Definition at line 132 of file bdasup.h.

Referenced by BdaMethodCreatePin(), and BdaMethodCreateTopology().

◆ pKSProperty

◆ pNodeDescriptorProperty

Definition at line 173 of file bdasup.h.

◆ ppKSFilterFactory

_Must_inspect_result_ _In_ const KSFILTER_DESCRIPTOR _In_ const BDA_FILTER_TEMPLATE _Out_opt_ PKSFILTERFACTORY* ppKSFilterFactory

Definition at line 81 of file bdasup.h.

Referenced by BdaCreateFilterFactoryEx().

◆ pProperty

◆ pulControllingPinId

Definition at line 157 of file bdasup.h.

◆ pulPinFactoryID

Definition at line 133 of file bdasup.h.

Referenced by BdaMethodCreatePin().

◆ pulPinId

Definition at line 89 of file bdasup.h.

Referenced by BdaCreatePin().

◆ pulProperty

◆ pvIgnored

Definition at line 141 of file bdasup.h.

◆ ulPinType

Definition at line 88 of file bdasup.h.

Referenced by BdaCreatePin().