Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
d10e550
Create Sample Issue template
5an7y Jun 27, 2025
fce97a3
Merge pull request #1 from 5an7y/sample-based-issue-template
5an7y Jun 27, 2025
841bf5e
Update sample_issue.yml
5an7y Jun 27, 2025
b279aaa
Action to auto generate the sample issues template
5an7y Jun 27, 2025
b83d9d2
Action to auto tag the codeowner.
5an7y Jun 27, 2025
737e921
id fix
5an7y Jun 27, 2025
9e1ed2c
Merge pull request #2 from 5an7y/sample-based-issue-template
5an7y Jun 27, 2025
268a017
import requests module
5an7y Jul 3, 2025
7ac40cb
Merge pull request #4 from 5an7y/sample-based-issue-template
5an7y Jul 3, 2025
e48795a
Correct regex expression
5an7y Jul 3, 2025
ba50875
Merge pull request #6 from 5an7y/sample-based-issue-template
5an7y Jul 3, 2025
4c463c3
Made the query more efficient
5an7y Jul 14, 2025
5d1436e
Merge pull request #8 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
12d6551
Selected path bug fix
5an7y Jul 14, 2025
b3eac5f
Merge pull request #10 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
69b234c
Fix selected path bug
5an7y Jul 14, 2025
4525b22
Merge pull request #12 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
1cef4c5
Sort the area in the issue template
5an7y Jul 14, 2025
c75fc92
Merge pull request #14 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
454b597
Correct codeowner path
5an7y Jul 14, 2025
668fe2d
Merge pull request #15 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
44faaa2
Correct sample issue path
5an7y Jul 14, 2025
8012049
Merge pull request #16 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
9b45042
Order sample issue
5an7y Jul 14, 2025
cb0261e
Merge pull request #18 from 5an7y/sample-based-issue-template
5an7y Jul 14, 2025
152cf49
Merge branch 'main' into main
5an7y Jul 14, 2025
396d2f0
Merge branch 'main' into main
5an7y Jul 16, 2025
9a897b9
Merge branch 'microsoft:main' into main
5an7y Aug 11, 2025
a0d6b25
Reference PR head
5an7y Aug 11, 2025
b45d3d6
Merge pull request #1319 from 5an7y/main
5an7y-Microsoft Aug 11, 2025
73af9a1
sample-issue creates error instead of push
5an7y Aug 11, 2025
28716b5
Rename 'generate' -> 'check'
5an7y Aug 11, 2025
3e1eb43
adding workflow to bulk cleanup stale issues older than 1 year
v-junyli Sep 29, 2025
9014cc3
Merge branch 'microsoft:main' into main
5an7y Sep 29, 2025
c7e53ea
Merge pull request #21 from microsoft/user/5an7y/issues_based_on_samples
5an7y Sep 29, 2025
2c6d1d3
Update triggers
5an7y-Microsoft Oct 3, 2025
b472de3
Merge pull request #1310 from 5an7y/main
5an7y-Microsoft Oct 3, 2025
57ea2d0
Merge pull request #1331 from microsoft/user/vjunyli/BulkCloseIssues
v-junyli Oct 17, 2025
6d81ee3
Increase operations-per-run to 400 and the stale threshold from 7 to 31
v-junyli Nov 7, 2025
c74e591
Merge pull request #1332 from microsoft/user/vjunyli/FixStaleWF
v-junyli Nov 7, 2025
9e8335f
use PAT_TOKEN and add dry-run for testing purpose.
v-junyli Nov 8, 2025
2a7a31d
Merge pull request #1333 from microsoft/user/vjunyli/FixStaleWF
v-junyli Nov 8, 2025
6ac765a
reversing the PAT_TOKEN and dry-run change
v-junyli Nov 8, 2025
7615e29
Merge pull request #1334 from microsoft/user/vjunyli/FixStaleWF
v-junyli Nov 8, 2025
5b11934
disable schedule and deleted the closing issue part
v-junyli Nov 19, 2025
1d89a15
Merge pull request #1336 from microsoft/user/vjunyli/disableWorkflow
v-junyli Nov 19, 2025
6fa87d3
New SDCAVAD sample.
darugeri Nov 25, 2025
caee83c
removed the space after newline which seems to be bug in c++ 23 not i…
Feb 4, 2026
76e03fc
Merge pull request #1346 from microsoft/pc_loadletter_0302
prashantchahar Feb 4, 2026
c96af8a
update Script to be compatible with vs2026
v-junyli Feb 5, 2026
9607307
Merge pull request #1348 from microsoft/user/vjunyli/vs2026updateScript
v-junyli Feb 5, 2026
2977346
Merge pull request #1340 from darugeri/master
5an7y-Microsoft Feb 12, 2026
24f84c1
Disable tag-codeowner-on-issue workflow
5an7y Feb 26, 2026
3e597cc
Merge pull request #1351 from microsoft/user/jvalesmena/disable-tag-o…
5an7y-Microsoft Feb 26, 2026
ed0aa30
WDK test infra changes
5an7y Mar 12, 2026
a28a071
Merge pull request #1353 from microsoft/user/jvalesmena/wdk-test-infr…
5an7y-Microsoft Mar 12, 2026
8683573
Initial plan
Copilot Mar 13, 2026
f204d70
Fix RCE vulnerability: pass issue body/number via env vars instead of…
Copilot Mar 13, 2026
ba5c475
Merge pull request #1 from 5an7y-Microsoft/copilot/fix-rce-vulnerabil…
5an7y-Microsoft Mar 13, 2026
925b258
Merge pull request #1355 from 5an7y-Microsoft/main
5an7y-Microsoft Mar 13, 2026
5c3bdbf
Add usermode_accessors.h sample driver
Mar 18, 2026
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
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
# Windows Implementation Library submodule
/wil/ @microsoft/driver-samples-maintainers

# Samples

# Audio
/audio/ @microsoft/windowsaudio

Expand Down
75 changes: 75 additions & 0 deletions .github/ISSUE_TEMPLATE/sample_issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Issue with a sample
description: Report a problem you have with a specific sample.
title: '[path/to/sample]: '
body:
- type: dropdown
id: sample_area
attributes:
label: Which is the area where the sample lives?
description: Select the area where you're experiencing the problem.
options:
- /TrEE/
- /audio/
- /avstream/
- /bluetooth/
- /filesys/cdfs/
- /filesys/fastfat/
- /filesys/miniFilter/
- /general/DCHU/
- /general/PLX9x5x/
- /general/SimpleMediaSource/
- /general/SystemDma/
- /general/cancel/
- /general/echo/
- /general/event/
- /general/ioctl/
- /general/pcidrv/
- /general/perfcounters/
- /general/registry/
- /general/toaster/
- /general/tracing/
- /gnss/
- /gpio/
- /hid/
- /input/
- /network/config/
- /network/modem/
- /network/ndis/
- /network/radio/
- /network/trans/
- /network/wlan/
- /network/wsk/
- /network/wwan/
- /nfc/
- /pofx/PEP/
- /pofx/UMDF2/
- /pofx/WDF/
- /pos/
- /powerlimit/
- /print/
- /prm/
- /sd/
- /security/
- /sensors/
- /serial/
- /setup/
- /simbatt/
- /smartcrd/
- /spb/
- /storage/
- /thermal/
- /tools/
- /usb/
- /video/
- /wia/
- /wmi/wmiacpi/
- /wmi/wmisamp/
validations:
required: true
- type: textarea
id: description
attributes:
label: Describe the issue
description: Provide a clear and concise description of what the issue is.
validations:
required: true
72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/sample_issue_generator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import yaml
import os

# Read the CODEOWNERS file
codeowners_path = os.path.join(os.path.dirname(__file__), "..", "CODEOWNERS")
with open(codeowners_path, "r") as file:
lines = file.readlines()

# Parse the CODEOWNERS file to extract areas and their paths
areas = []
sample_section_found = False

for line in lines:
line = line.strip()
if line.startswith("# Samples"):
sample_section_found = True
continue

if sample_section_found:
if line.startswith("#"):
continue
elif line:
path, codeowner = line.split()
if path in areas:
raise ValueError(f"Path:{path} has been found two times inside CODEOWNERS file")
areas.append(path)


# Sort the areas in lexicographical order
areas = sorted(areas)

# Generate the YAML structure
yaml_form = {
"name": "Issue with a sample",
"description": "Report a problem you have with a specific sample.",
"title": "[path/to/sample]: ",
"body": []
}

dropdown = {
"type": "dropdown",
"id": "sample_area",
"attributes": {
"label": "Which is the area where the sample lives?",
"description": "Select the area where you're experiencing the problem.",
"options": areas
},
"validations": {
"required": True
}
}

# Add a description field
description_field = {
"type": "textarea",
"id": "description",
"attributes": {
"label": "Describe the issue",
"description": "Provide a clear and concise description of what the issue is."
},
"validations": {
"required": True
}
}

yaml_form["body"].append(dropdown)
yaml_form["body"].append(description_field)

# Write the YAML to a file
output_path = os.path.join(os.path.dirname(__file__), "sample_issue.yml")
with open(output_path, "w") as outfile:
yaml.dump(yaml_form, outfile, sort_keys=False)
16 changes: 16 additions & 0 deletions .github/workflows/StaleIssues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Close inactive issues
on:
workflow_dispatch:
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/stale@v10
with:
days-before-issue-stale: 365
stale-issue-label: "stale"
stale-issue-message: "This issue has been inactive for a year. It will be closed in 31 days if no further activity occurs. If you believe this issue is still relevant, please comment to keep it open."
operations-per-run: 400
repo-token: ${{ secrets.GITHUB_TOKEN }}
50 changes: 50 additions & 0 deletions .github/workflows/check-sample-issue-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Check Sample Issue Template

on:
pull_request:
paths:
- '.github/CODEOWNERS'
- '.github/ISSUE_TEMPLATE/sample_issue.yml'
- '.github/ISSUE_TEMPLATE/sample_issue_generator.py'


jobs:
generate-template:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: pip install pyyaml

- name: Run the generator script
run: python .github/ISSUE_TEMPLATE/sample_issue_generator.py

- name: Check for discrepancies
run: |
if git diff --quiet .github/ISSUE_TEMPLATE/sample_issue.yml; then
echo "✅ No discrepancies found. The sample issue template is up to date."
else
echo "❌ Discrepancy detected!"
echo "The CODEOWNERS file was modified, but the sample issue template is not up to date."
echo ""
echo "Please regenerate the sample issue template by running:"
echo " python .github/ISSUE_TEMPLATE/sample_issue_generator.py"
echo ""
echo "Or manually update it."
echo ""
echo "Then commit both files together:"
echo " git add .github/CODEOWNERS .github/ISSUE_TEMPLATE/sample_issue.yml"
echo " git commit -m 'Update CODEOWNERS and regenerate sample issue template'"
echo ""
echo "Differences found:"
git diff .github/ISSUE_TEMPLATE/sample_issue.yml
exit 1
fi
82 changes: 82 additions & 0 deletions .github/workflows/tag-codeowner-on-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Tag Codeowner on Sample Issue

on:
issues:
types: [opened]

jobs:
tag-codeowner:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install dependencies
run: pip install pyyaml requests

- name: Extract selected path and tag codeowner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ISSUE_BODY: ${{ github.event.issue.body }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
run: |
python3 - <<EOF
import os
import re
import requests
issue_body = os.environ['ISSUE_BODY']
selected_path = None
# Try to extract the selected path from the issue body
match = re.search(r'### Which is the area where the sample lives\?\s*\n(.+)', issue_body, re.MULTILINE)
if match:
selected_path = match.group(1).strip()
if not selected_path:
print("No sample path found in issue body.")
exit(0)
# Read CODEOWNERS
with open(".github/CODEOWNERS", "r") as f:
lines = f.readlines()
codeowner = None
sample_section = False
for line in lines:
line = line.strip()
if line.startswith("# Samples"):
sample_section = True
continue
if sample_section:
if line.startswith("#") or not line:
continue
path, owner = line.split()
if path == selected_path:
codeowner = owner
break
if codeowner is None:
print(f"No codeowner found for path: {selected_path}")
exit(0)
# Post a comment tagging the owner
comment = f"{codeowner} can you please take a look at this issue related to {selected_path}?"
repo = os.environ['GITHUB_REPOSITORY']
token = os.environ['GITHUB_TOKEN']
issue_number = os.environ['ISSUE_NUMBER']
url = f"https://api.github.com/repos/{repo}/issues/{issue_number}/comments"
headers = {
"Authorization": f"Bearer {token}",
"Accept": "application/vnd.github.v3+json"
}
response = requests.post(url, headers=headers, json={"body": comment})
print("Comment posted:", response.status_code, response.text)
EOF
3 changes: 2 additions & 1 deletion Build-AllSamples.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ param(
[string[]]$Configurations = @(if ([string]::IsNullOrEmpty($env:WDS_Configuration)) { ('Debug', 'Release') } else { $env:WDS_Configuration }),
[string[]]$Platforms = @(if ([string]::IsNullOrEmpty($env:WDS_Platform)) { ('x64', 'arm64') } else { $env:WDS_Platform }),
[string]$LogFilesDirectory = (Join-Path (Get-Location) "_logs"),
[string]$InfOptions = "",
[int]$ThrottleLimit
)

Expand Down Expand Up @@ -68,4 +69,4 @@ foreach ($file in $solutionFiles) {
}
}

.\Build-SampleSet -SampleSet $sampleSet -Configurations $Configurations -Platform $Platforms -LogFilesDirectory $LogFilesDirectory -Verbose:$Verbose -ThrottleLimit $ThrottleLimit
.\Build-SampleSet -SampleSet $sampleSet -Configurations $Configurations -Platform $Platforms -LogFilesDirectory $LogFilesDirectory -Verbose:$Verbose -ThrottleLimit $ThrottleLimit -InfOptions $InfOptions
10 changes: 8 additions & 2 deletions Build-SampleSet.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ param(
[string[]]$Platforms = @(if ([string]::IsNullOrEmpty($env:WDS_Platform)) { "x64" } else { $env:WDS_Platform }),
$LogFilesDirectory = (Get-Location),
[string]$ReportFileName = $(if ([string]::IsNullOrEmpty($env:WDS_ReportFileName)) { "_overview" } else { $env:WDS_ReportFileName }),
[string]$InfOptions = "",
[int]$ThrottleLimit = 0
)

$root = Get-Location

# launch developer powershell (if necessary to prevent multiple developer sessions)
if (-not $env:VSCMD_VER) {
Import-Module (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\2022\*\Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
Enter-VsDevShell -VsInstallPath (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\2022\*")
Import-Module (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\*\*\Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
Enter-VsDevShell -VsInstallPath (Resolve-Path "$env:ProgramFiles\Microsoft Visual Studio\*\*")
Set-Location $root
}

Expand Down Expand Up @@ -135,6 +136,11 @@ if ($build_environment -match '^EWDK') {
#
$InfVerif_AdditionalOptions=($build_number -le 22621 ? "/sw1284 /sw1285 /sw1293 /sw2083 /sw2086" : "/samples")

# Override InfVerif_AdditionalOptions if InfOptions parameter was provided
if (-not [string]::IsNullOrEmpty($InfOptions)) {
$InfVerif_AdditionalOptions = $InfOptions
}

#
# Determine exclusions.
#
Expand Down
Binary file not shown.
23 changes: 23 additions & 0 deletions audio/SoundWire/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
The Microsoft Public License (MS-PL)
Copyright (c) 2015 Microsoft

This license governs use of the accompanying software. If you use the software, you
accept this license. If you do not accept the license, do not use the software.

1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the
same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to the software.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.

2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
2 changes: 2 additions & 0 deletions audio/SoundWire/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Soundwire
Microsoft Soundwire Samples and Guides
Loading
Loading