sigmd 0.1.0

Windows API signature metadata
Documentation
---
# Glob patterns for SDK headers to be included in the database.
sdk:
  - winsdk/sdk/include/shared/**/*.h
  - winsdk/sdk/include/ucrt/**/*.h
  - winsdk/sdk/include/um/**/*.h
  - winsdk/crt/include/**/*.h
  - assets/windows/src/undoc/**/*.c
  - assets/windows/src/override/**/*.c

# SDK header directories used for resolving includes.
# Passed to clang as `-isystem`.
include:
  - winsdk/crt/include
  - winsdk/sdk/include/ucrt
  - winsdk/sdk/include/shared
  - winsdk/sdk/include/um
  - winsdk/sdk/include/winrt
  - winsdk/sdk/include/cppwinrt
  - assets/windows/include
  - assets/windows/include/phnt

# Force-included headers.
# Passed to clang as `-include`.
inject:
  - assets/windows/include/inject.h

database:
  # Functions with these names will not be included in the database.
  # Leading OR trailing wildcards are supported.
  # For example, `*CreateFile` or `CreateFile*`.
  ignore_functions:
    # `RtlFreeAnsiString` has the same entry point as `RtlFreeUnicodeString`.
    # Let's prefer `RtlFreeUnicodeString`, since the latter is more commonly
    # used.
    - RtlFreeAnsiString

  # Types with these names will not be included in the database.
  # Leading OR trailing wildcards are supported.
  ignore_interfaces: []

# Custom type tags. See `TypeKind::Custom(u8)`.
custom_types:
  - id: 1
    name: ANSI_STRING
    matches: [_ANSI_STRING, _STRING, _LSA_STRING]

  - id: 2
    name: UNICODE_STRING
    matches: [_UNICODE_STRING, _LSA_UNICODE_STRING]

  - id: 3
    name: LARGE_INTEGER
    matches: [_LARGE_INTEGER]

  - id: 4
    name: ULARGE_INTEGER
    matches: [_ULARGE_INTEGER]

  - id: 5
    name: OBJECT_ATTRIBUTES
    matches: [_OBJECT_ATTRIBUTES]

  - id: 6
    name: CONTEXT
    matches: [_CONTEXT]

  - id: 7
    name: GUID
    matches: [_GUID]

  - id: 8
    name: SERVICE_TABLE_ENTRYA
    matches: [_SERVICE_TABLE_ENTRYA]

  - id: 9
    name: SERVICE_TABLE_ENTRYW
    matches: [_SERVICE_TABLE_ENTRYW]

  - id: 10
    name: PROCESSENTRY32A
    matches: [tagPROCESSENTRY32]

  - id: 11
    name: PROCESSENTRY32W
    matches: [tagPROCESSENTRY32W]

  - id: 12
    name: STARTUPINFOA
    matches: [_STARTUPINFOA]

  - id: 13
    name: STARTUPINFOW
    matches: [_STARTUPINFOW]

  - id: 14
    name: PROCESS_INFORMATION
    matches: [_PROCESS_INFORMATION]

  - id: 15
    name: SHELLEXECUTEINFOA
    matches: [_SHELLEXECUTEINFOA]

  - id: 16
    name: SHELLEXECUTEINFOW
    matches: [_SHELLEXECUTEINFOW]

  - id: 17
    name: FILETIME
    matches: [_FILETIME]

  - id: 18
    name: WIN32_FIND_DATAA
    matches: [_WIN32_FIND_DATAA]

  - id: 19
    name: WIN32_FIND_DATAW
    matches: [_WIN32_FIND_DATAW]

  - id: 20
    name: CLIENT_ID
    matches: [_CLIENT_ID]

  - id: 21
    name: WNDCLASSA
    matches: [tagWNDCLASSA]

  - id: 22
    name: WNDCLASSW
    matches: [tagWNDCLASSW]

  - id: 23
    name: WNDCLASSEXA
    matches: [tagWNDCLASSEXA]

  - id: 24
    name: WNDCLASSEXW
    matches: [tagWNDCLASSEXW]

  - id: 25
    name: VARIANT
    matches: [tagVARIANT]

  - id: 26
    name: SOCKADDR
    matches: [sockaddr]

  - id: 27
    name: ADDRINFOA
    matches: [addrinfo]

  - id: 28
    name: ADDRINFOW
    matches: [addrinfoW]

  - id: 29
    name: HW_PROFILE_INFOA
    matches: [tagHW_PROFILE_INFOA]

  - id: 30
    name: HW_PROFILE_INFOW
    matches: [tagHW_PROFILE_INFOW]

  - id: 31
    name: LUID
    matches: [_LUID]

  - id: 32
    name: TOKEN_PRIVILEGES
    matches: [_TOKEN_PRIVILEGES]

  # These types have multiple versions with identical layouts.
  - id: 33
    name: DXGI_ADAPTER_DESC
    matches:
      [
        DXGI_ADAPTER_DESC,
        DXGI_ADAPTER_DESC1,
        DXGI_ADAPTER_DESC2,
        DXGI_ADAPTER_DESC3,
      ]