ReactOS 0.4.17-dev-1281-g065abb3
portacpi.cpp File Reference
#include "usbhub3.h"
#include "hubid.h"
#include <acpiioct.h>
#include <debug.h>
Include dependency graph for portacpi.cpp:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define HUB_ACPI_RESULT_BYTES   (sizeof(ACPI_EVAL_OUTPUT_BUFFER) + 1024)
 
#define HUB_ACPI_METHOD_SUFFIX   6U
 
#define HUB_UPC_TYPE_C_NO_SWITCH   0x0A
 
#define HUB_UPC_ELEMENTS   4
 
#define HUB_PLD_BYTES   16
 
#define HUB_DSM_REVISION   0
 
#define HUB_DSM_INTERCONNECT_TYPE   2
 
#define HUB_DSM_DISABLE_U2   5
 
#define HUB_DSD_ENTRY_MIN_BYTES   16
 
#define HUB_DSM_INPUT_BYTES
 

Functions

 C_ASSERT (sizeof(ACPI_EVAL_INPUT_BUFFER_COMPLEX_EX)==276)
 
 C_ASSERT (HUB_DSM_INPUT_BYTES==312)
 
 C_ASSERT (sizeof(ACPI_ENUM_CHILDREN_INPUT_BUFFER)==16)
 
 C_ASSERT (sizeof(ACPI_ENUM_CHILDREN_OUTPUT_BUFFER)==20)
 
static NTSTATUS NTAPI HubAcpiAllocate (_In_ HubFdo *Hub, _In_ size_t Bytes, _Out_ WDFMEMORY *Memory, _Outptr_result_bytebuffer_(Bytes) PVOID *Buffer)
 
static VOID NTAPI HubAcpiFree (_In_opt_ WDFMEMORY Memory)
 
 _IRQL_requires_ (PASSIVE_LEVEL) static NTSTATUS NTAPI HubAcpiSend(_In_ HubFdo *Hub
 Sends a synchronous IOCTL to the specified device object.
 
return WdfIoTargetSendInternalIoctlSynchronously (WdfDeviceGetIoTarget(Hub->m_Device), NULL, IoControlCode, &InputDescriptor, &OutputDescriptor, NULL, Information)
 
 if (!NT_SUCCESS(Status) &&!(CheckResultOnNoDevice &&Status==STATUS_NO_SUCH_DEVICE))
 
 if (Result->Signature !=ACPI_EVAL_OUTPUT_BUFFER_SIGNATURE||Result->Count==0)
 
static NTSTATUS NTAPI HubAcpiPrepareInput (_Out_ PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX Input, _In_ PCANSI_STRING Device, _In_reads_(4) PCSTR Method, _In_ ULONG ArgumentCount)
 
_In_ PCANSI_STRING _In_reads_ (4) PCSTR Method
 
 if (!NT_SUCCESS(Status)) return Status
 
 if (NT_SUCCESS(Status))
 
 HubAcpiFree (InputMemory)
 
 RtlCopyMemory (Argument->Data, &HubUsbDsmGuid, sizeof(HubUsbDsmGuid))
 
 RtlZeroMemory (WdfMemoryGetBuffer(Output, NULL), HUB_ACPI_RESULT_BYTES)
 
 if (Status==STATUS_NOT_SUPPORTED) return Status
 
 if (!NT_SUCCESS(Status) &&Status !=STATUS_BUFFER_OVERFLOW)
 
 if (OutputBytes==sizeof(ACPI_ENUM_CHILDREN_OUTPUT_BUFFER))
 
 if (Children->Signature !=ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE||Children->NumberOfChildren==0||Information !=OutputBytes)
 
static BOOLEAN NTAPI HubAcpiResultInteger (_In_ WDFMEMORY Output, _Out_ PULONG Value)
 
 if (!NT_SUCCESS(HubAcpiEvaluateDsm(Hub, Device, HUB_DSM_INTERCONNECT_TYPE, Output))) return
 
 if (!HubAcpiResultInteger(Output, &Value))
 

Variables

static const GUID HubUsbDsmGuid
 
static const GUID HubDsdPropertiesGuid
 
static const CHAR HubUsb4HostProperty [] = "usb4-host-interface"
 
_In_ ULONG IoControlCode
 
_In_ ULONG _In_ WDFMEMORY Input
 
_In_ ULONG _In_ WDFMEMORY _In_ WDFMEMORY Output
 
_In_ ULONG _In_ WDFMEMORY _In_ WDFMEMORY _Out_ PULONG_PTR Information
 
WDF_MEMORY_DESCRIPTOR OutputDescriptor
 
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE & InputDescriptor
 
_In_ WDFMEMORY _In_ WDFMEMORY _In_ BOOLEAN CheckResultOnNoDevice
 
PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX Method = (PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX)WdfMemoryGetBuffer(Input, NULL)
 
NTSTATUS Status = HubAcpiSend(Hub, IOCTL_ACPI_EVAL_METHOD_EX, Input, Output, &Information)
 
_In_ PCANSI_STRING Device
 
WDFMEMORY InputMemory
 
_In_ PCANSI_STRING _In_ ULONG Function
 
PACPI_METHOD_ARGUMENT Argument = Input->Argument
 
Argument Type = ACPI_METHOD_ARGUMENT_BUFFER
 
Argument DataLength = sizeof(HubUsbDsmGuid)
 
_In_ WDFMEMORY _In_ size_t OutputBytes
 
Input Signature = ACPI_ENUM_CHILDREN_INPUT_BUFFER_SIGNATURE
 
Input Flags = ENUM_CHILDREN_IMMEDIATE_ONLY
 
Input NameLength = 0
 
return STATUS_SUCCESS
 
_In_ HubPort * Port
 
Port m_InterconnectType = (USHORT)Value
 

Macro Definition Documentation

◆ HUB_ACPI_METHOD_SUFFIX

#define HUB_ACPI_METHOD_SUFFIX   6U

Definition at line 20 of file portacpi.cpp.

◆ HUB_ACPI_RESULT_BYTES

#define HUB_ACPI_RESULT_BYTES   (sizeof(ACPI_EVAL_OUTPUT_BUFFER) + 1024)

Definition at line 17 of file portacpi.cpp.

◆ HUB_DSD_ENTRY_MIN_BYTES

#define HUB_DSD_ENTRY_MIN_BYTES   16

Definition at line 49 of file portacpi.cpp.

◆ HUB_DSM_DISABLE_U2

#define HUB_DSM_DISABLE_U2   5

Definition at line 39 of file portacpi.cpp.

◆ HUB_DSM_INPUT_BYTES

#define HUB_DSM_INPUT_BYTES
Value:
ACPI_METHOD_ARGUMENT_LENGTH(sizeof(GUID)) + \
ACPI_METHOD_ARGUMENT_LENGTH(0))
#define ACPI_METHOD_ARGUMENT_LENGTH(DataLength)
Definition: acpiioct.h:153
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG _In_ PVOID Argument
Definition: dispmprt.h:1288
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
uint32_t ULONG
Definition: typedefs.h:59

Definition at line 52 of file portacpi.cpp.

◆ HUB_DSM_INTERCONNECT_TYPE

#define HUB_DSM_INTERCONNECT_TYPE   2

Definition at line 36 of file portacpi.cpp.

◆ HUB_DSM_REVISION

#define HUB_DSM_REVISION   0

Definition at line 35 of file portacpi.cpp.

◆ HUB_PLD_BYTES

#define HUB_PLD_BYTES   16

Definition at line 29 of file portacpi.cpp.

◆ HUB_UPC_ELEMENTS

#define HUB_UPC_ELEMENTS   4

Definition at line 26 of file portacpi.cpp.

◆ HUB_UPC_TYPE_C_NO_SWITCH

#define HUB_UPC_TYPE_C_NO_SWITCH   0x0A

Definition at line 23 of file portacpi.cpp.

◆ NDEBUG

#define NDEBUG

Definition at line 13 of file portacpi.cpp.

Function Documentation

◆ _In_reads_()

_In_ PCANSI_STRING _In_reads_ ( 4  )

◆ _IRQL_requires_()

_IRQL_requires_ ( PASSIVE_LEVEL  )

Sends a synchronous IOCTL to the specified device object.

Evaluates a method without arguments into Output.

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
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
#define NT_ASSERT
Definition: rtlfuncs.h:3334

◆ C_ASSERT() [1/4]

C_ASSERT ( HUB_DSM_INPUT_BYTES  = =312)

◆ C_ASSERT() [2/4]

◆ C_ASSERT() [3/4]

◆ C_ASSERT() [4/4]

◆ HubAcpiAllocate()

static NTSTATUS NTAPI HubAcpiAllocate ( _In_ HubFdo *  Hub,
_In_ size_t  Bytes,
_Out_ WDFMEMORY *  Memory,
_Outptr_result_bytebuffer_(Bytes) PVOID *  Buffer 
)
static

Zeroed nonpaged WDF memory owned by the hub FDO.

Definition at line 66 of file portacpi.cpp.

71{
74
76 Attributes.ParentObject = Hub->m_Device;
77
79 if (!NT_SUCCESS(Status))
80 {
81 DPRINT1("Hub %p ACPI buffer of %lu bytes failed 0x%lx\n", Hub, (ULONG)Bytes, Status);
82 *Memory = NULL;
83 *Buffer = NULL;
84 return Status;
85 }
86
88 return STATUS_SUCCESS;
89}
#define DPRINT1
Definition: precomp.h:8
HubFdo * Hub
Definition: bootdev.cpp:261
Definition: bufpool.h:45
WDFDEVICE m_Device
Definition: fdo.h:349
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define NULL
Definition: types.h:112
#define NonPagedPool
Definition: env_spec_w32.h:307
Status
Definition: gdiplustypes.h:24
#define HUB_TAG_HUB
Definition: hubutil.h:12
_In_ UINT Bytes
Definition: mmcopy.h:9
NTSTATUS Status
Definition: portacpi.cpp:145
return STATUS_SUCCESS
Definition: portacpi.cpp:339
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ _Strict_type_match_ POOL_TYPE _In_opt_ ULONG _In_ _Out_ WDFMEMORY * Memory
Definition: wdfmemory.h:169
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
Definition: wdfobject.h:147

◆ HubAcpiFree() [1/2]

static VOID NTAPI HubAcpiFree ( _In_opt_ WDFMEMORY  Memory)
static

Definition at line 94 of file portacpi.cpp.

96{
97 if (Memory != NULL)
99}
WdfObjectDelete(String)

Referenced by if().

◆ HubAcpiFree() [2/2]

HubAcpiFree ( InputMemory  )

◆ HubAcpiPrepareInput()

static NTSTATUS NTAPI HubAcpiPrepareInput ( _Out_ PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX  Input,
_In_ PCANSI_STRING  Device,
_In_reads_(4) PCSTR  Method,
_In_ ULONG  ArgumentCount 
)
static

Fills the input header: "<Device>.<Method>" and the argument count.

Definition at line 168 of file portacpi.cpp.

173{
174 if (Device->Length + HUB_ACPI_METHOD_SUFFIX > sizeof(Input->MethodName))
175 {
176 DPRINT1("ACPI device path %Z is too long for a method name\n", Device);
178 }
179
181 Input->Size = sizeof(*Input);
182 Input->ArgumentCount = ArgumentCount;
183
184 RtlCopyMemory(Input->MethodName, Device->Buffer, Device->Length);
185 Input->MethodName[Device->Length] = '.';
186 RtlCopyMemory(&Input->MethodName[Device->Length + 1], Method, 4);
187 Input->MethodName[Device->Length + 5] = ANSI_NULL;
188 return STATUS_SUCCESS;
189}
#define ACPI_EVAL_INPUT_BUFFER_COMPLEX_SIGNATURE_EX
Definition: acpiioct.h:27
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
Definition: hubucx.h:258
#define ANSI_NULL
_In_ ULONG _In_ WDFMEMORY Input
Definition: portacpi.cpp:109
PACPI_EVAL_INPUT_BUFFER_COMPLEX_EX Method
Definition: portacpi.cpp:143
#define HUB_ACPI_METHOD_SUFFIX
Definition: portacpi.cpp:20
Input ArgumentCount
Definition: slotdev.cpp:121
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ HubAcpiResultInteger()

static BOOLEAN NTAPI HubAcpiResultInteger ( _In_ WDFMEMORY  Output,
_Out_ PULONG  Value 
)
static

First result argument when it is an integer.

Definition at line 348 of file portacpi.cpp.

351{
353
354 *Value = 0;
355 if (Result->Count == 0 || Result->Argument[0].Type != ACPI_METHOD_ARGUMENT_INTEGER)
356 return FALSE;
357
358 *Value = Result->Argument[0].Argument;
359 return TRUE;
360}
#define ACPI_METHOD_ARGUMENT_INTEGER
Definition: acpiioct.h:30
ACPI_EVAL_OUTPUT_BUFFER UNALIGNED * PACPI_EVAL_OUTPUT_BUFFER
Definition: acpiioct.h:99
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
_In_ ULONG _In_ WDFMEMORY _In_ WDFMEMORY Output
Definition: portacpi.cpp:110
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_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:409

◆ if() [1/10]

if ( !  HubAcpiResultIntegerOutput, &Value)

Definition at line 378 of file portacpi.cpp.

379 {
380 DPRINT1("Port %u: _DSM interconnect type is not an integer (platform compliance)\n", Port->Number());
381 return;
382 }
USHORT Number() const
Definition: hubport.h:213
_In_ HubPort * Port
Definition: portacpi.cpp:369

◆ if() [2/10]

if ( !  NT_SUCCESSHubAcpiEvaluateDsm(Hub, Device, HUB_DSM_INTERCONNECT_TYPE, Output))

◆ if() [3/10]

if ( !  NT_SUCCESSStatus) &&!(CheckResultOnNoDevice &&Status==STATUS_NO_SUCH_DEVICE)

Definition at line 148 of file portacpi.cpp.

149 {
151 DPRINT1("Hub %p ACPI %s failed 0x%lx\n", Hub, Method->MethodName, Status);
152 return Status;
153 }
#define STATUS_OBJECT_NAME_NOT_FOUND
Definition: udferr_usr.h:149

◆ if() [4/10]

Definition at line 306 of file portacpi.cpp.

307 {
308 DPRINT1("Hub %p ACPI child enumeration failed 0x%lx\n", Hub, Status);
309 return Status;
310 }

◆ if() [5/10]

if ( !  NT_SUCCESSStatus)

Definition at line 242 of file portacpi.cpp.

243 {
245 return Status;
246 }
static VOID NTAPI HubAcpiFree(_In_opt_ WDFMEMORY Memory)
Definition: portacpi.cpp:94
WDFMEMORY InputMemory
Definition: portacpi.cpp:203

◆ if() [6/10]

if ( Children->Signature !  = ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE || Children->NumberOfChildren == 0 || Information != OutputBytes)

Definition at line 331 of file portacpi.cpp.

334 {
335 DPRINT1("Hub %p ACPI child enumeration returned no children\n", Hub);
337 }
#define STATUS_ACPI_INVALID_DATA
Definition: ntstatus.h:1662

◆ if() [7/10]

if ( NT_SUCCESS(Status)  )

Definition at line 211 of file portacpi.cpp.

212 {
213 RtlZeroMemory(WdfMemoryGetBuffer(Output, NULL), HUB_ACPI_RESULT_BYTES);
214 Status = HubAcpiEvaluate(Hub, InputMemory, Output, FALSE);
215 }
#define HUB_ACPI_RESULT_BYTES
Definition: portacpi.cpp:17

◆ if() [8/10]

Definition at line 312 of file portacpi.cpp.

313 {
315 Children->Signature != ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE ||
316 Children->NumberOfChildren < sizeof(ACPI_ENUM_CHILDREN_OUTPUT_BUFFER))
317 {
318 DPRINT1("Hub %p ACPI child enumeration size query is invalid 0x%lx\n", Hub, Status);
320 }
321
323 }
#define ACPI_ENUM_CHILDREN_OUTPUT_BUFFER_SIGNATURE
Definition: acpiioct.h:22
#define STATUS_BUFFER_OVERFLOW
Definition: shellext.h:66

◆ if() [9/10]

Definition at line 155 of file portacpi.cpp.

156 {
157 DPRINT1("Hub %p ACPI %s returned no usable result\n", Hub, Method->MethodName);
159 }

◆ if() [10/10]

Definition at line 174 of file userreq.cpp.

175 {
176 User.SetStatus(UsbUserBufferTooSmall);
177 }

◆ RtlCopyMemory()

RtlCopyMemory ( Argument->  Data,
&  HubUsbDsmGuid,
sizeof(HubUsbDsmGuid)   
)

◆ RtlZeroMemory()

RtlZeroMemory ( WdfMemoryGetBuffer(Output, NULL)  ,
HUB_ACPI_RESULT_BYTES   
)

◆ WdfIoTargetSendInternalIoctlSynchronously()

return WdfIoTargetSendInternalIoctlSynchronously ( WdfDeviceGetIoTarget(Hub->m_Device)  ,
NULL  ,
IoControlCode  ,
&  InputDescriptor,
&  OutputDescriptor,
NULL  ,
Information   
)

Variable Documentation

◆ Argument

Definition at line 233 of file portacpi.cpp.

◆ CheckResultOnNoDevice

_In_ WDFMEMORY _In_ WDFMEMORY _In_ BOOLEAN CheckResultOnNoDevice
Initial value:

Definition at line 140 of file portacpi.cpp.

◆ DataLength

Definition at line 250 of file portacpi.cpp.

◆ Device

Definition at line 198 of file portacpi.cpp.

◆ Flags

Definition at line 297 of file portacpi.cpp.

◆ Function

Definition at line 229 of file portacpi.cpp.

◆ HubDsdPropertiesGuid

const GUID HubDsdPropertiesGuid
static
Initial value:
=
{ 0xDAFFD814, 0x6EBA, 0x4D8C, { 0x8A, 0x91, 0xBC, 0x9B, 0xBF, 0x4A, 0xA3, 0x01 } }

Definition at line 42 of file portacpi.cpp.

◆ HubUsb4HostProperty

const CHAR HubUsb4HostProperty[] = "usb4-host-interface"
static

Definition at line 46 of file portacpi.cpp.

◆ HubUsbDsmGuid

const GUID HubUsbDsmGuid
static
Initial value:
=
{ 0xCE2EE385, 0x00E6, 0x48CB, { 0x9F, 0x05, 0x2E, 0xDB, 0x92, 0x7C, 0x48, 0x99 } }

Definition at line 32 of file portacpi.cpp.

◆ Information

Initial value:
{
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE & InputDescriptor
Definition: portacpi.cpp:116

Definition at line 111 of file portacpi.cpp.

◆ Input

◆ InputDescriptor

Definition at line 116 of file portacpi.cpp.

Referenced by XhciEvaluateAcpiMethod().

◆ InputMemory

WDFMEMORY InputMemory

Definition at line 203 of file portacpi.cpp.

Referenced by if().

◆ IoControlCode

Definition at line 108 of file portacpi.cpp.

◆ m_InterconnectType

Port m_InterconnectType = (USHORT)Value

Definition at line 384 of file portacpi.cpp.

◆ Method

Definition at line 143 of file portacpi.cpp.

Referenced by HubAcpiPrepareInput(), and if().

◆ NameLength

Input NameLength = 0

Definition at line 298 of file portacpi.cpp.

Referenced by AccpLookupSidByName(), AcpiDsCreateOperand(), AddBitmap(), AddIndexAllocation(), AddIndexRoot(), BaseCreateVDMEnvironment(), BaseGetEnvNameType_U(), BasepGetComputerNameFromNtPath(), BindAdapterByName(), Call_QueryDosVolume_Path_Paths(), CdDissectName(), CheckMsOs20Registry(), CmpAddDriverToList(), CmpCompareCompressedName(), CmpCompareInIndex(), CmpConstructName(), CmpConvertLangId(), CmpQueryKeyData(), CmpQueryKeyDataFromCache(), CmpQueryNameInformation(), CmpValidateKey(), EnumerateSoundDevices(), EnumerateValueTest(), Ext2ProcessEntry(), FindAttribute(), GetLayoutName(), HubCustomPropertyValid(), HubIdGenerateContainerId(), HubWmiFirePortEvent(), HubWmiHubNameRequest(), if(), IniCacheAddKeyAorW(), IniCacheAddSectionAorW(), InitVolumeDeviceName(), IntDeleteRegFontEntries(), IntGdiLoadFontsFromMemory(), IoCreateDriver(), IoVolumeDeviceToDosName(), KspStartBusDevice(), LsapRegEnumerateValue(), MainLoop(), nfs41_GetConnectionInfoFromBuffer(), NormalizeArcDeviceName(), NpQueryFsAttributeInfo(), NpQueryFsVolumeInfo(), NpQueryNameInfo(), NpWaitForNamedPipe(), NpWaitPipe(), NtfsBuildRenamePath(), NtfsFindAttribute(), NtfsFindAttributeHelper(), NtfsFindAttributeHelperList(), NtfsMakeFCBFromDirEntry(), NtfsMakeRootFCB(), NtfsReadFCBAttribute(), NtfsSetRenameInformation(), NtQueryInformationAtom(), ODBC32_SQLDescribeCol(), ODBC32_SQLDescribeColW(), ODBC32_SQLGetCursorName(), ODBC32_SQLGetCursorNameW(), ODBC32_SQLSetCursorName(), ODBC32_SQLSetCursorNameW(), OpenDeviceReadWrite(), OpenLSAPolicyHandle(), PciBuildHackTable(), QueryDosDeviceW(), QuerySuggestedLinkName(), RegEnumKeyExA(), RegEnumKeyExW(), RegEnumValueA(), RegEnumValueW(), ResolveArcNameManually(), RtlQueryAtomInAtomTable(), RtlQueryEnvironmentVariable(), RxAllocateObject(), RxConjureOriginalName(), RxCreateSrvCall(), SampFillUserDisplayCache(), SampRegEnumerateValue(), SampRemoveUserFromDomainAliases(), SamrEnumerateAliasesInDomain(), SamrEnumerateGroupsInDomain(), SamrEnumerateUsersInDomain(), START_TEST(), test1(), test2(), test3(), test6(), test9(), test_token_attr(), TestAllInformation(), WaitNamedPipeW(), while(), WSAttemptAutodialAddr(), WSPGetPeerName(), and WSPGetSockName().

◆ Output

_In_ HubPort _In_ PCANSI_STRING _In_ WDFMEMORY Output
Initial value:

Definition at line 110 of file portacpi.cpp.

Referenced by HubAcpiResultInteger(), and if().

◆ OutputBytes

_In_ WDFMEMORY _In_ size_t OutputBytes
Initial value:
{
ACPI_ENUM_CHILDREN_OUTPUT_BUFFER UNALIGNED * PACPI_ENUM_CHILDREN_OUTPUT_BUFFER
Definition: acpiioct.h:151

Definition at line 284 of file portacpi.cpp.

◆ OutputDescriptor

Definition at line 114 of file portacpi.cpp.

Referenced by XhciEvaluateAcpiMethod().

◆ Port

_In_ HubPort* Port

Definition at line 369 of file portacpi.cpp.

Referenced by if().

◆ Signature

Definition at line 296 of file portacpi.cpp.

◆ Status

Definition at line 145 of file portacpi.cpp.

Referenced by HubAcpiAllocate(), and if().

◆ STATUS_SUCCESS

return STATUS_SUCCESS

Definition at line 339 of file portacpi.cpp.

Referenced by HubAcpiAllocate(), and HubAcpiPrepareInput().

◆ Type

Definition at line 249 of file portacpi.cpp.