Skip to content

Repo sync for protected branch #10468

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Nov 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
description: Returns the equivalent address (section and offset) for the specified VA.
title: "IDiaStackWalkHelper::addressForVA"
ms.date: "11/04/2024"
ms.topic: "reference"
dev_langs:
- "C++"
helpviewer_keywords:
- "IDiaStackWalkHelper::addressForVA method"
author: "grantri"
ms.author: "grantri"
manager: mijacobs
ms.subservice: debug-diagnostics
---

# IDiaStackWalkHelper::addressForVA

Returns the equivalent address (section and offset) for the specified VA.

## Syntax

```C++
HRESULT addressForVA(
ULONGLONG va,
DWORD* pISect,
DWORD* pOffset
);
```

### Parameters

`[in] va`

Specifies the virtual address to translate.

`[out] pISect`

Returns the equivalent section for the specified address.

`[out] pOffset`

Returns the equivalent offset within the section for the specified address.

## Return Value

If successful, returns `S_OK`. Returns `E_NOTIMPL` if the helper doesn't support translation; otherwise, returns an error code.

## See also

- [`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md)
- [`IDiaSession::addressForVA`](../../debugger/debug-interface-access/idiasession-addressForVA.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
description: Returns the addresses and lengths of discontiguous fragments for the function at the specified virtual address (VA).
title: "IDiaStackWalkHelper::getFunctionFragmentsForVA"
ms.date: "11/04/2024"
ms.topic: "reference"
dev_langs:
- "C++"
helpviewer_keywords:
- "IDiaSesIDiaStackWalkHelpersion::getFunctionFragmentsForVA method"
author: "grantri"
ms.author: "grantri"
manager: twhitney
ms.subservice: debug-diagnostics
---

# IDiaStackWalkHelper::getFunctionFragmentsForVA

Returns the addresses and lengths of discontiguous fragments for the function at the specified virtual address (VA).

## Syntax

```C++
HRESULT getFunctionFragmentsVA(
ULONGLONG vaFunc,
DWORD cbFunc,
DWORD cFragments,
ULONGLONG *pVaFragment,
DWORD *pLenFragment
);
```

### Parameters

`[in] vaFunc`

The virtual address of the function.

`[in] cbFunc`

The total size in bytes of the function (that is, the length of the function).

`[in] cFragments`

The count of elements allocated for `pVaFragment` and `pLenFragment`.

`[out] pVaFragment`

Array buffer to receive the virtual addresses of each fragment. This buffer must be at least `cFragments` elements long.

`[out] pLenFragment`

Array buffer to receive the length, in bytes, of each fragment. This buffer must be at least `cFragments` elements long.

## Return Value

If successful, returns `S_OK`; otherwise, returns an error code.

## See also

- [`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md)
- [`IDiaSession::getFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getfunctionfragments_va.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
description: Returns the number of discontiguous fragments for the function at the specified virtual address (VA).
title: "IDiaStackWalkHelper::getNumberOfFunctionFragmentsForVA"
ms.date: "11/04/2024"
ms.topic: "reference"
dev_langs:
- "C++"
helpviewer_keywords:
- "IDiaStackWalkHelper::getNumberOfFunctionFragmentsForVA method"
author: "grantri"
ms.author: "grantri"
manager: twhitney
ms.subservice: debug-diagnostics
---

# IDiaStackWalkHelper::getNumberOfFunctionFragmentsForVA

Returns the number of discontiguous fragments for the function at the specified virtual address (VA).

## Syntax

```C++
HRESULT getNumberOfFunctionFragmentsForVA(
ULONGLONG vaFunc,
DWORD cbFunc,
DWORD *pNumFragments
);
```

### Parameters

`[in] vaFunc`

The virtual address of the function.

`[in] cbFunc`

The total size in bytes of the function (that is, the length of the function).

`[out] pNumFragments`

The number of fragments.

## Return Value

If successful, returns `S_OK`; otherwise, returns an error code.

## See also

- [`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md)
- [`IDiaSession::getNumberOfFunctionFragments_VA`](../../debugger/debug-interface-access/idiasession-getnumberoffunctionfragments_va.md)
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
description: Returns the PDATA data block associated with the virtual address.
title: "IDiaStackWalkHelper::pdataForVA"
ms.date: "11/04/2016"
ms.date: "11/04/2024"
ms.topic: "reference"
dev_langs:
- "C++"
helpviewer_keywords:
- "IDiaStackWalkHelper2::pdataByVA method"
- "IDiaStackWalkHelper::pdataByVA method"
author: "mikejo5000"
ms.author: "mikejo"
manager: mijacobs
Expand All @@ -28,30 +28,35 @@ HRESULT pdataForVA(
);
```

#### Parameters
`va`
### Parameters

[in] Specifies the virtual address of the data to obtain.
`[in] va`

`cbData`
Specifies the virtual address of the data to obtain.

[in] The size of data in bytes to obtain.
`[in] cbData`

`pcbData`
The size of data in bytes to obtain.

[out] Returns the actual size of data in bytes that was obtained.
`[out] pcbData`

`pbData`
Returns the actual size of data in bytes that was obtained.

[in, out] A buffer that is filled in with the requested data. Cannot be `NULL`.
`[in, out] pbData`

A buffer that is filled in with the requested data. Can't be `NULL`.

## Return Value
If successful, returns `S_OK`. Returns `S_FALSE` if there is no PDATA for the specified address. Otherwise, returns an error code.

If successful, returns `S_OK`. Returns `S_FALSE` if there's no PDATA for the specified address. Otherwise, return an error code.

## Remarks
The PDATA (the section named ".pdata") of a compiland contains information about exception handling for functions.

The caller knows how much data is to be returned so the caller has no need to ask for how much data is available. Therefore, it is acceptable for an implementation of this method to return an error if the `pbData` parameter is `NULL`.
The `.pdata` section of a compiland contains information about exception handling for functions. It appears in the [PE Format](/windows/win32/debug/pe-format) as the "Exception Table" within the "Optional Header Data Directories."

The caller knows how much data is to be returned so the caller has no need to ask for how much data is available. Therefore, it's acceptable for an implementation of this method to return an error if the `pbData` parameter is `NULL`.

## See also
- [IDiaStackWalkHelper](../../debugger/debug-interface-access/idiastackwalkhelper.md)

- [`IDiaStackWalkHelper`](../../debugger/debug-interface-access/idiastackwalkhelper.md)
- [PE Format - The `.pdata` Section](/windows/win32/debug/pe-format#the-pdata-section)
42 changes: 25 additions & 17 deletions docs/debugger/debug-interface-access/idiastackwalkhelper.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: Facilitates walking the stack using the program debug database (.pdb) file.
title: IDiaStackWalkHelper
ms.date: "11/04/2016"
ms.date: "11/04/2024"
ms.topic: "reference"
dev_langs:
- "C++"
Expand All @@ -19,43 +19,51 @@ Facilitates walking the stack using the program debug database (.pdb) file.

## Syntax

```
```C++

IDiaStackWalkHelper: IUnknown

```

## Methods in VTable Order
The table below shows the methods of `IDiaStackWalkHelper`:

This table shows the methods of `IDiaStackWalkHelper`:

|Method|Description|
|------------|-----------------|
|[IDiaStackWalkHelper::get_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md)|Retrieves the value of a register.|
|[IDiaStackWalkHelper::put_registerValue](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md)|Sets the value of a register.|
|[IDiaStackWalkHelper::readMemory](../../debugger/debug-interface-access/idiastackwalkhelper-readmemory.md)|Reads a block of data from the executable's image in memory.|
|[IDiaStackWalkHelper::searchForReturnAddress](../../debugger/debug-interface-access/idiastackwalkhelper-searchforreturnaddress.md)|Searches the specified stack frame for the nearest function return address.|
|[IDiaStackWalkHelper::searchForReturnAddressStart](../../debugger/debug-interface-access/idiastackwalkhelper-searchforreturnaddressstart.md)|Searches the specified stack frame for a return address at or near the specified stack address.|
|[IDiaStackWalkHelper::frameForVA](../../debugger/debug-interface-access/idiastackwalkhelper-frameforva.md)|Retrieves the stack frame that contains the specified virtual address.|
|[IDiaStackWalkHelper::symbolForVA](../../debugger/debug-interface-access/idiastackwalkhelper-symbolforva.md)|Retrieves the symbol that contains the specified virtual address. **Note:** Symbol must have the type `SymTagFunctionType` (a value from the [SymTagEnum Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration).|
|[IDiaStackWalkHelper::pdataForVA](../../debugger/debug-interface-access/idiastackwalkhelper-pdataforva.md)|Returns the PDATA data block associated with the specified virtual address.|
|[IDiaStackWalkHelper::imageForVA](../../debugger/debug-interface-access/idiastackwalkhelper-imageforva.md)|Retrieves the starting virtual address of an executable, given a virtual address somewhere in the executable's memory space.|
|[`IDiaStackWalkHelper::get_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-get-registervalue.md)|Retrieves the value of a register.|
|[`IDiaStackWalkHelper::put_registerValue`](../../debugger/debug-interface-access/idiastackwalkhelper-put-registervalue.md)|Sets the value of a register.|
|[`IDiaStackWalkHelper::readMemory`](../../debugger/debug-interface-access/idiastackwalkhelper-readmemory.md)|Reads a block of data from the executable's image in memory.|
|[`IDiaStackWalkHelper::searchForReturnAddress`](../../debugger/debug-interface-access/idiastackwalkhelper-searchforreturnaddress.md)|Searches the specified stack frame for the nearest function return address.|
|[`IDiaStackWalkHelper::searchForReturnAddressStart`](../../debugger/debug-interface-access/idiastackwalkhelper-searchforreturnaddressstart.md)|Searches the specified stack frame for a return address at or near the specified stack address.|
|[`IDiaStackWalkHelper::frameForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-frameforva.md)|Retrieves the stack frame that contains the specified virtual address (VA).|
|[`IDiaStackWalkHelper::symbolForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-symbolforva.md)|Retrieves the symbol that contains the specified VA. **Note:** Symbol must have the type `SymTagFunctionType` (a value from the [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md) enumeration).|
|[`IDiaStackWalkHelper::pdataForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-pdataforva.md)|Returns the PDATA data block associated with the specified VA.|
|[`IDiaStackWalkHelper::imageForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-imageforva.md)|Retrieves the starting VA of an executable, given a VA somewhere in the executable's memory space.|
|[`IDiaStackWalkHelper::addressForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-addressforva.md)|Returns the equivalent address (section and offset) for the specified VA.|
|[`IDiaStackWalkHelper::numberOfFunctionFragmentsForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-numberoffunctionfragmentsforva.md)|Retrieves the number of discontiguous fragments for the function at the specified VA.|
|[`IDiaStackWalkHelper::functionFragmentsForVA`](../../debugger/debug-interface-access/idiastackwalkhelper-functionfragmentsforva.md)|Retrieves the addresses and lengths of discontiguous fragments for the function at the specified VA.|

## Remarks

This interface is called by the Debug Interface Access (DIA) code to obtain information about the executable to construct a list of stack frames during program execution.

## Notes for Callers
A client application implements this interface to support walking the stack during program execution. An instance of this interface is passed to the [IDiaStackWalker::getEnumFrames](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md) or [IDiaStackWalker::getEnumFrames2](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md) methods.

A client application implements this interface to support walking the stack during program execution. An instance of this interface is passed to the [`IDiaStackWalker::getEnumFrames`](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md) or [IDiaStackWalker::getEnumFrames2](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md) methods.

## Requirements

Header: Dia2.h

Library: diaguids.lib

DLL: msdia80.dll

## See also

- [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md)
- [IDiaFrameData](../../debugger/debug-interface-access/idiaframedata.md)
- [SymTagEnum Enumeration](../../debugger/debug-interface-access/symtagenum.md)
- [IDiaStackWalker::getEnumFrames](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md)
- [IDiaStackWalker::getEnumFrames2](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md)
- [`IDiaFrameData`](../../debugger/debug-interface-access/idiaframedata.md)
- [`SymTagEnum` Enumeration](../../debugger/debug-interface-access/symtagenum.md)
- [`IDiaStackWalker::getEnumFrames`](../../debugger/debug-interface-access/idiastackwalker-getenumframes.md)
- [`IDiaStackWalker::getEnumFrames2`](../../debugger/debug-interface-access/idiastackwalker-getenumframes2.md)
6 changes: 6 additions & 0 deletions docs/debugger/debug-interface-access/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -874,10 +874,16 @@
items:
- name: IDiaStackWalkHelper
href: idiastackwalkhelper.md
- name: IDiaStackWalkHelper::addressForVA
href: idiastackwalkhelper-addressforva.md
- name: IDiaStackWalkHelper::frameForVA
href: idiastackwalkhelper-frameforva.md
- name: IDiaStackWalkHelper::functionFragmentsForVA
href: idiastackwalkhelper-functionfragmentsforva.md
- name: IDiaStackWalkHelper::imageForVA
href: idiastackwalkhelper-imageforva.md
- name: IDiaStackWalkHelper::nuberOfFunctionFragmentsForVA
href: idiastackwalkhelper-numberoffunctionfragmentsforva.md
- name: IDiaStackWalkHelper::pdataForVA
href: idiastackwalkhelper-pdataforva.md
- name: IDiaStackWalkHelper::get_registerValue
Expand Down
2 changes: 1 addition & 1 deletion docs/deployment/quickstart-deploy-aspnet-web-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ Provide the necessary connection details and choose **Finish**. The following sc
The first time you publish, create a username and password. These credentials are specific to WebDeploy deployment. Once they're created, you can't change them in Visual Studio, but you can reset them in IIS. See [Sites - Set Credentials dialog box](/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831681(v=ws.11)#set-credentials-dialog-box). If you don't have the password, you can download a `.publishsettings` file, and read it from there. See [Import publish settings from IIS](./tutorial-import-publish-settings-iis.md).

> [!WARNING]
> Using username and password credentials (basic authentication) is not the most secure method of authentication. Whenever possible, use alternative methods. For example, consider publishing to a package from Visual Studio, and then use *WebDeploy.exe* from a command line to deploy the package. With that method, you can use IIS Manager to configure authorized Windows users who can publish to the web server, and run *WebDeploy.exe* under that Windows user account. See [Installing and Configuring Web Deploy on IIS 8.0 or Later](/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later). If you do use password credentials, be sure to use a strong password, secure the password from being leaked or shared, and properly manage password rotation according to a fixed schedule.
> Using username and password credentials (basic authentication) is not the most secure method of authentication. Whenever possible, use alternative methods. For example, consider publishing to a package from Visual Studio, and then use *WebDeploy.exe* from a command line to deploy the package. With that method, you can use IIS Manager to configure authorized Windows users who can publish to the web server, and run *WebDeploy.exe* under that Windows user account. See [Installing and Configuring Web Deploy on IIS 8.0 or Later](/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy-on-iis-80-or-later). If you do use password credentials, be sure to use a strong password, and secure the password from being leaked or shared.

For troubleshooting, see [Web Deploy error codes](/troubleshoot/developer/webapps/iis/deployment-migration/web-deploy-error-codes#ERROR_DESTINATION_NOT_REACHABLE).

Expand Down
4 changes: 2 additions & 2 deletions subscriptions/assign-license-bulk.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Assign subscriptions to multiple users
author: joseb-rdc
ms.author: amast
manager: shve
ms.date: 09/16/2024
ms.date: 11/04/2024
ms.topic: conceptual
description: Assign multiple subscriptions to one or more users at the same time with the bulk operation features in the Subscriptions Admin Portal.
---
Expand All @@ -12,7 +12,7 @@ description: Assign multiple subscriptions to one or more users at the same time

The Subscriptions Admin Portal lets you add users one-at-a-time, or in large groups. To add individual users, see [Add single users](assign-license.md).

To add large groups of users, you can use the bulk add feature, or if your organization is using Microsoft Entra ID **and your organization has a trusted agreement**, you can use Microsoft Entra groups. This article explains the process for both options. Watch this video or read on to learn more about the bulk add feature.
To add large groups of users, you can use the bulk add feature, or if your organization is using Microsoft Entra **and your organization has a trusted agreement**, you can use Microsoft Entra groups. This article explains the process for both options. Watch this video or read on to learn more about the bulk add feature.

## Use Bulk add to assign subscriptions

Expand Down