Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Private Struct

ForeignString

Private Struct
std.os.windows.BASE_STATIC_SERVER_DATA.ForeignString
const ForeignString = extern struct

This matches the 64-bit version of UNICODE_STRING---even on 32-bit targets, this string is from 64-bit code (since it comes from CSRSS which is running outside of WOW64).

Fields

length: u16
maximum_length: u16
buffer_address: u64

Address in the CSRSS address space. To convert this to a valid pointer in our address space, see relocateCsrssAddress (or the ForeignString.relocate wrapper function).

Functions

File

os/windows.zig:5991
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
    const ForeignString = extern struct {
        length: u16,
        maximum_length: u16,
        /// Address in the CSRSS address space. To convert this to a valid pointer in *our* address
        /// space, see `relocateCsrssAddress` (or the `ForeignString.relocate` wrapper function).
        buffer_address: u64,
        fn relocate(str: ForeignString) UNICODE_STRING {
            return .{
                .Length = str.length,
                .MaximumLength = str.maximum_length,
                .Buffer = @ptrCast(@alignCast(@constCast(relocateCsrssAddress(str.buffer_address)))),
            };
        }
    }