Win32 API 日本語リファレンス
ホームStorage.Nvme › NVME_CDW11_FEATURES

NVME_CDW11_FEATURES

共用体
サイズx64: 4 バイト / x86: 4 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
NumberOfQueuesNVME_CDW11_FEATURE_NUMBER_OF_QUEUES4+0+0キュー数Featureとして解釈したCDW11。
InterruptCoalescingNVME_CDW11_FEATURE_INTERRUPT_COALESCING4+0+0割り込み合体Featureとして解釈したCDW11。
InterruptVectorConfigNVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG4+0+0割り込みベクタ設定Featureとして解釈したCDW11。
LbaRangeTypeNVME_CDW11_FEATURE_LBA_RANGE_TYPE4+0+0LBA範囲タイプFeatureとして解釈したCDW11。
ArbitrationNVME_CDW11_FEATURE_ARBITRATION4+0+0アービトレーションFeatureとして解釈したCDW11。
VolatileWriteCacheNVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE4+0+0揮発性書き込みキャッシュFeatureとして解釈したCDW11。
AsyncEventConfigNVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG4+0+0非同期イベント設定Featureとして解釈したCDW11。
PowerManagementNVME_CDW11_FEATURE_POWER_MANAGEMENT4+0+0電源管理Featureとして解釈したCDW11。
AutoPowerStateTransitionNVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION4+0+0自動電源状態遷移Featureとして解釈したCDW11。
TemperatureThresholdNVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD4+0+0温度しきい値Featureとして解釈したCDW11。
ErrorRecoveryNVME_CDW11_FEATURE_ERROR_RECOVERY4+0+0エラー回復Featureとして解釈したCDW11。
HostMemoryBufferNVME_CDW11_FEATURE_HOST_MEMORY_BUFFER4+0+0ホストメモリバッファFeatureとして解釈したCDW11。
WriteAtomicityNormalNVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL4+0+0書き込みアトミック性Featureとして解釈したCDW11。
NonOperationalPowerStateNVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE4+0+0非動作電源状態Featureとして解釈したCDW11。
IoCommandSetProfileNVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE4+0+0I/Oコマンドセットプロファイルとして解釈したCDW11。
ErrorInjectionNVME_CDW0_FEATURE_ERROR_INJECTION4+0+0エラーインジェクションFeatureとして解釈したCDW11。
HostIdentifierNVME_CDW11_FEATURE_HOST_IDENTIFIER4+0+0ホスト識別子Featureとして解釈したCDW11。
ReservationPersistenceNVME_CDW11_FEATURE_RESERVATION_PERSISTENCE4+0+0予約持続Featureとして解釈したCDW11。
ReservationNotificationMaskNVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK4+0+0予約通知マスクFeatureとして解釈したCDW11。
GetHostMetadataNVME_CDW11_FEATURE_GET_HOST_METADATA4+0+0ホストメタデータ取得Featureとして解釈したCDW11。
SetHostMetadataNVME_CDW11_FEATURE_SET_HOST_METADATA4+0+0ホストメタデータ設定Featureとして解釈したCDW11。
AsUlongDWORD4+0+0CDW11全体を32ビット整数としてアクセスするための値。

各言語での定義

#include <windows.h>

// NVME_CDW11_FEATURE_NUMBER_OF_QUEUES  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_NUMBER_OF_QUEUES {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_NUMBER_OF_QUEUES;

// NVME_CDW11_FEATURE_INTERRUPT_COALESCING  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_INTERRUPT_COALESCING {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_INTERRUPT_COALESCING;

// NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG;

// NVME_CDW11_FEATURE_LBA_RANGE_TYPE  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_LBA_RANGE_TYPE {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_LBA_RANGE_TYPE;

// NVME_CDW11_FEATURE_ARBITRATION  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_ARBITRATION {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_ARBITRATION;

// NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE;

// NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG;

// NVME_CDW11_FEATURE_POWER_MANAGEMENT  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_POWER_MANAGEMENT {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_POWER_MANAGEMENT;

// NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION;

// NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD;

// NVME_CDW11_FEATURE_ERROR_RECOVERY  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_ERROR_RECOVERY {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_ERROR_RECOVERY;

// NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER;

// NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL;

// NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE;

// NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE;

// NVME_CDW0_FEATURE_ERROR_INJECTION  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW0_FEATURE_ERROR_INJECTION {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW0_FEATURE_ERROR_INJECTION;

// NVME_CDW11_FEATURE_HOST_IDENTIFIER  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_HOST_IDENTIFIER {
    DWORD _bitfield;
} NVME_CDW11_FEATURE_HOST_IDENTIFIER;

// NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE {
    DWORD _bitfield;
} NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE;

// NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK {
    DWORD _bitfield;
} NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK;

// NVME_CDW11_FEATURE_GET_HOST_METADATA  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_GET_HOST_METADATA {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_GET_HOST_METADATA;

// NVME_CDW11_FEATURE_SET_HOST_METADATA  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURE_SET_HOST_METADATA {
    _Anonymous_e__Struct Anonymous;
    DWORD AsUlong;
} NVME_CDW11_FEATURE_SET_HOST_METADATA;

// NVME_CDW11_FEATURES  (x64 4 / x86 4 バイト)
typedef struct NVME_CDW11_FEATURES {
    NVME_CDW11_FEATURE_NUMBER_OF_QUEUES NumberOfQueues;
    NVME_CDW11_FEATURE_INTERRUPT_COALESCING InterruptCoalescing;
    NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG InterruptVectorConfig;
    NVME_CDW11_FEATURE_LBA_RANGE_TYPE LbaRangeType;
    NVME_CDW11_FEATURE_ARBITRATION Arbitration;
    NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE VolatileWriteCache;
    NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG AsyncEventConfig;
    NVME_CDW11_FEATURE_POWER_MANAGEMENT PowerManagement;
    NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION AutoPowerStateTransition;
    NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD TemperatureThreshold;
    NVME_CDW11_FEATURE_ERROR_RECOVERY ErrorRecovery;
    NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
    NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL WriteAtomicityNormal;
    NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE NonOperationalPowerState;
    NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE IoCommandSetProfile;
    NVME_CDW0_FEATURE_ERROR_INJECTION ErrorInjection;
    NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier;
    NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence;
    NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask;
    NVME_CDW11_FEATURE_GET_HOST_METADATA GetHostMetadata;
    NVME_CDW11_FEATURE_SET_HOST_METADATA SetHostMetadata;
    DWORD AsUlong;
} NVME_CDW11_FEATURES;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_INTERRUPT_COALESCING
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_LBA_RANGE_TYPE
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_ARBITRATION
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_POWER_MANAGEMENT
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_ERROR_RECOVERY
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW0_FEATURE_ERROR_INJECTION
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_HOST_IDENTIFIER
{
    public uint _bitfield;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
{
    public uint _bitfield;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
{
    public uint _bitfield;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_GET_HOST_METADATA
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURE_SET_HOST_METADATA
{
    public _Anonymous_e__Struct Anonymous;
    public uint AsUlong;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NVME_CDW11_FEATURES
{
    public NVME_CDW11_FEATURE_NUMBER_OF_QUEUES NumberOfQueues;
    public NVME_CDW11_FEATURE_INTERRUPT_COALESCING InterruptCoalescing;
    public NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG InterruptVectorConfig;
    public NVME_CDW11_FEATURE_LBA_RANGE_TYPE LbaRangeType;
    public NVME_CDW11_FEATURE_ARBITRATION Arbitration;
    public NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE VolatileWriteCache;
    public NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG AsyncEventConfig;
    public NVME_CDW11_FEATURE_POWER_MANAGEMENT PowerManagement;
    public NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION AutoPowerStateTransition;
    public NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD TemperatureThreshold;
    public NVME_CDW11_FEATURE_ERROR_RECOVERY ErrorRecovery;
    public NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
    public NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL WriteAtomicityNormal;
    public NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE NonOperationalPowerState;
    public NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE IoCommandSetProfile;
    public NVME_CDW0_FEATURE_ERROR_INJECTION ErrorInjection;
    public NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier;
    public NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence;
    public NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask;
    public NVME_CDW11_FEATURE_GET_HOST_METADATA GetHostMetadata;
    public NVME_CDW11_FEATURE_SET_HOST_METADATA SetHostMetadata;
    public uint AsUlong;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_INTERRUPT_COALESCING
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_LBA_RANGE_TYPE
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_ARBITRATION
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_POWER_MANAGEMENT
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_ERROR_RECOVERY
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW0_FEATURE_ERROR_INJECTION
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_HOST_IDENTIFIER
    Public _bitfield As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
    Public _bitfield As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
    Public _bitfield As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_GET_HOST_METADATA
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURE_SET_HOST_METADATA
    Public Anonymous As _Anonymous_e__Struct
    Public AsUlong As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NVME_CDW11_FEATURES
    Public NumberOfQueues As NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
    Public InterruptCoalescing As NVME_CDW11_FEATURE_INTERRUPT_COALESCING
    Public InterruptVectorConfig As NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
    Public LbaRangeType As NVME_CDW11_FEATURE_LBA_RANGE_TYPE
    Public Arbitration As NVME_CDW11_FEATURE_ARBITRATION
    Public VolatileWriteCache As NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
    Public AsyncEventConfig As NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
    Public PowerManagement As NVME_CDW11_FEATURE_POWER_MANAGEMENT
    Public AutoPowerStateTransition As NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
    Public TemperatureThreshold As NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
    Public ErrorRecovery As NVME_CDW11_FEATURE_ERROR_RECOVERY
    Public HostMemoryBuffer As NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
    Public WriteAtomicityNormal As NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
    Public NonOperationalPowerState As NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
    Public IoCommandSetProfile As NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
    Public ErrorInjection As NVME_CDW0_FEATURE_ERROR_INJECTION
    Public HostIdentifier As NVME_CDW11_FEATURE_HOST_IDENTIFIER
    Public ReservationPersistence As NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
    Public ReservationNotificationMask As NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
    Public GetHostMetadata As NVME_CDW11_FEATURE_GET_HOST_METADATA
    Public SetHostMetadata As NVME_CDW11_FEATURE_SET_HOST_METADATA
    Public AsUlong As UInteger
End Structure
import ctypes
from ctypes import wintypes

class NVME_CDW11_FEATURE_NUMBER_OF_QUEUES(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_INTERRUPT_COALESCING(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_LBA_RANGE_TYPE(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_ARBITRATION(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_POWER_MANAGEMENT(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_ERROR_RECOVERY(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW0_FEATURE_ERROR_INJECTION(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_HOST_IDENTIFIER(ctypes.Structure):
    _fields_ = [
        ("_bitfield", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE(ctypes.Structure):
    _fields_ = [
        ("_bitfield", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK(ctypes.Structure):
    _fields_ = [
        ("_bitfield", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_GET_HOST_METADATA(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURE_SET_HOST_METADATA(ctypes.Structure):
    _fields_ = [
        ("Anonymous", _Anonymous_e__Struct),
        ("AsUlong", wintypes.DWORD),
    ]

class NVME_CDW11_FEATURES(ctypes.Structure):
    _fields_ = [
        ("NumberOfQueues", NVME_CDW11_FEATURE_NUMBER_OF_QUEUES),
        ("InterruptCoalescing", NVME_CDW11_FEATURE_INTERRUPT_COALESCING),
        ("InterruptVectorConfig", NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG),
        ("LbaRangeType", NVME_CDW11_FEATURE_LBA_RANGE_TYPE),
        ("Arbitration", NVME_CDW11_FEATURE_ARBITRATION),
        ("VolatileWriteCache", NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE),
        ("AsyncEventConfig", NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG),
        ("PowerManagement", NVME_CDW11_FEATURE_POWER_MANAGEMENT),
        ("AutoPowerStateTransition", NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION),
        ("TemperatureThreshold", NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD),
        ("ErrorRecovery", NVME_CDW11_FEATURE_ERROR_RECOVERY),
        ("HostMemoryBuffer", NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER),
        ("WriteAtomicityNormal", NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL),
        ("NonOperationalPowerState", NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE),
        ("IoCommandSetProfile", NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE),
        ("ErrorInjection", NVME_CDW0_FEATURE_ERROR_INJECTION),
        ("HostIdentifier", NVME_CDW11_FEATURE_HOST_IDENTIFIER),
        ("ReservationPersistence", NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE),
        ("ReservationNotificationMask", NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK),
        ("GetHostMetadata", NVME_CDW11_FEATURE_GET_HOST_METADATA),
        ("SetHostMetadata", NVME_CDW11_FEATURE_SET_HOST_METADATA),
        ("AsUlong", wintypes.DWORD),
    ]
#[repr(C)]
pub struct NVME_CDW11_FEATURE_NUMBER_OF_QUEUES {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_INTERRUPT_COALESCING {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_LBA_RANGE_TYPE {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_ARBITRATION {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_POWER_MANAGEMENT {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_ERROR_RECOVERY {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW0_FEATURE_ERROR_INJECTION {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_HOST_IDENTIFIER {
    pub _bitfield: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE {
    pub _bitfield: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK {
    pub _bitfield: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_GET_HOST_METADATA {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURE_SET_HOST_METADATA {
    pub Anonymous: _Anonymous_e__Struct,
    pub AsUlong: u32,
}

#[repr(C)]
pub struct NVME_CDW11_FEATURES {
    pub NumberOfQueues: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES,
    pub InterruptCoalescing: NVME_CDW11_FEATURE_INTERRUPT_COALESCING,
    pub InterruptVectorConfig: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG,
    pub LbaRangeType: NVME_CDW11_FEATURE_LBA_RANGE_TYPE,
    pub Arbitration: NVME_CDW11_FEATURE_ARBITRATION,
    pub VolatileWriteCache: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE,
    pub AsyncEventConfig: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG,
    pub PowerManagement: NVME_CDW11_FEATURE_POWER_MANAGEMENT,
    pub AutoPowerStateTransition: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION,
    pub TemperatureThreshold: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD,
    pub ErrorRecovery: NVME_CDW11_FEATURE_ERROR_RECOVERY,
    pub HostMemoryBuffer: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER,
    pub WriteAtomicityNormal: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL,
    pub NonOperationalPowerState: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE,
    pub IoCommandSetProfile: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE,
    pub ErrorInjection: NVME_CDW0_FEATURE_ERROR_INJECTION,
    pub HostIdentifier: NVME_CDW11_FEATURE_HOST_IDENTIFIER,
    pub ReservationPersistence: NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE,
    pub ReservationNotificationMask: NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK,
    pub GetHostMetadata: NVME_CDW11_FEATURE_GET_HOST_METADATA,
    pub SetHostMetadata: NVME_CDW11_FEATURE_SET_HOST_METADATA,
    pub AsUlong: u32,
}
import "golang.org/x/sys/windows"

type NVME_CDW11_FEATURE_NUMBER_OF_QUEUES struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_INTERRUPT_COALESCING struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_LBA_RANGE_TYPE struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_ARBITRATION struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_POWER_MANAGEMENT struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_ERROR_RECOVERY struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW0_FEATURE_ERROR_INJECTION struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_HOST_IDENTIFIER struct {
	_bitfield uint32
}

type NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE struct {
	_bitfield uint32
}

type NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK struct {
	_bitfield uint32
}

type NVME_CDW11_FEATURE_GET_HOST_METADATA struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURE_SET_HOST_METADATA struct {
	Anonymous _Anonymous_e__Struct
	AsUlong uint32
}

type NVME_CDW11_FEATURES struct {
	NumberOfQueues NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
	InterruptCoalescing NVME_CDW11_FEATURE_INTERRUPT_COALESCING
	InterruptVectorConfig NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
	LbaRangeType NVME_CDW11_FEATURE_LBA_RANGE_TYPE
	Arbitration NVME_CDW11_FEATURE_ARBITRATION
	VolatileWriteCache NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
	AsyncEventConfig NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
	PowerManagement NVME_CDW11_FEATURE_POWER_MANAGEMENT
	AutoPowerStateTransition NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
	TemperatureThreshold NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
	ErrorRecovery NVME_CDW11_FEATURE_ERROR_RECOVERY
	HostMemoryBuffer NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
	WriteAtomicityNormal NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
	NonOperationalPowerState NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
	IoCommandSetProfile NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
	ErrorInjection NVME_CDW0_FEATURE_ERROR_INJECTION
	HostIdentifier NVME_CDW11_FEATURE_HOST_IDENTIFIER
	ReservationPersistence NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
	ReservationNotificationMask NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
	GetHostMetadata NVME_CDW11_FEATURE_GET_HOST_METADATA
	SetHostMetadata NVME_CDW11_FEATURE_SET_HOST_METADATA
	AsUlong uint32
}
type
  NVME_CDW11_FEATURE_NUMBER_OF_QUEUES = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_INTERRUPT_COALESCING = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_LBA_RANGE_TYPE = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_ARBITRATION = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_POWER_MANAGEMENT = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_ERROR_RECOVERY = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW0_FEATURE_ERROR_INJECTION = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_HOST_IDENTIFIER = record
    _bitfield: DWORD;
  end;

  NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE = record
    _bitfield: DWORD;
  end;

  NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK = record
    _bitfield: DWORD;
  end;

  NVME_CDW11_FEATURE_GET_HOST_METADATA = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURE_SET_HOST_METADATA = record
    Anonymous: _Anonymous_e__Struct;
    AsUlong: DWORD;
  end;

  NVME_CDW11_FEATURES = record
    NumberOfQueues: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES;
    InterruptCoalescing: NVME_CDW11_FEATURE_INTERRUPT_COALESCING;
    InterruptVectorConfig: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG;
    LbaRangeType: NVME_CDW11_FEATURE_LBA_RANGE_TYPE;
    Arbitration: NVME_CDW11_FEATURE_ARBITRATION;
    VolatileWriteCache: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE;
    AsyncEventConfig: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG;
    PowerManagement: NVME_CDW11_FEATURE_POWER_MANAGEMENT;
    AutoPowerStateTransition: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION;
    TemperatureThreshold: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD;
    ErrorRecovery: NVME_CDW11_FEATURE_ERROR_RECOVERY;
    HostMemoryBuffer: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER;
    WriteAtomicityNormal: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL;
    NonOperationalPowerState: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE;
    IoCommandSetProfile: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE;
    ErrorInjection: NVME_CDW0_FEATURE_ERROR_INJECTION;
    HostIdentifier: NVME_CDW11_FEATURE_HOST_IDENTIFIER;
    ReservationPersistence: NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE;
    ReservationNotificationMask: NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK;
    GetHostMetadata: NVME_CDW11_FEATURE_GET_HOST_METADATA;
    SetHostMetadata: NVME_CDW11_FEATURE_SET_HOST_METADATA;
    AsUlong: DWORD;
  end;
const NVME_CDW11_FEATURE_NUMBER_OF_QUEUES = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_INTERRUPT_COALESCING = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_LBA_RANGE_TYPE = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_ARBITRATION = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_POWER_MANAGEMENT = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_ERROR_RECOVERY = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW0_FEATURE_ERROR_INJECTION = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_HOST_IDENTIFIER = extern struct {
    _bitfield: u32,
};

const NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE = extern struct {
    _bitfield: u32,
};

const NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK = extern struct {
    _bitfield: u32,
};

const NVME_CDW11_FEATURE_GET_HOST_METADATA = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURE_SET_HOST_METADATA = extern struct {
    Anonymous: _Anonymous_e__Struct,
    AsUlong: u32,
};

const NVME_CDW11_FEATURES = extern struct {
    NumberOfQueues: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES,
    InterruptCoalescing: NVME_CDW11_FEATURE_INTERRUPT_COALESCING,
    InterruptVectorConfig: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG,
    LbaRangeType: NVME_CDW11_FEATURE_LBA_RANGE_TYPE,
    Arbitration: NVME_CDW11_FEATURE_ARBITRATION,
    VolatileWriteCache: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE,
    AsyncEventConfig: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG,
    PowerManagement: NVME_CDW11_FEATURE_POWER_MANAGEMENT,
    AutoPowerStateTransition: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION,
    TemperatureThreshold: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD,
    ErrorRecovery: NVME_CDW11_FEATURE_ERROR_RECOVERY,
    HostMemoryBuffer: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER,
    WriteAtomicityNormal: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL,
    NonOperationalPowerState: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE,
    IoCommandSetProfile: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE,
    ErrorInjection: NVME_CDW0_FEATURE_ERROR_INJECTION,
    HostIdentifier: NVME_CDW11_FEATURE_HOST_IDENTIFIER,
    ReservationPersistence: NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE,
    ReservationNotificationMask: NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK,
    GetHostMetadata: NVME_CDW11_FEATURE_GET_HOST_METADATA,
    SetHostMetadata: NVME_CDW11_FEATURE_SET_HOST_METADATA,
    AsUlong: u32,
};
type
  NVME_CDW11_FEATURE_NUMBER_OF_QUEUES {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_INTERRUPT_COALESCING {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_LBA_RANGE_TYPE {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_ARBITRATION {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_POWER_MANAGEMENT {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_ERROR_RECOVERY {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW0_FEATURE_ERROR_INJECTION {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_HOST_IDENTIFIER {.bycopy.} = object
    _bitfield: uint32

  NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE {.bycopy.} = object
    _bitfield: uint32

  NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK {.bycopy.} = object
    _bitfield: uint32

  NVME_CDW11_FEATURE_GET_HOST_METADATA {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURE_SET_HOST_METADATA {.bycopy.} = object
    Anonymous: _Anonymous_e__Struct
    AsUlong: uint32

  NVME_CDW11_FEATURES {.bycopy.} = object
    NumberOfQueues: NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
    InterruptCoalescing: NVME_CDW11_FEATURE_INTERRUPT_COALESCING
    InterruptVectorConfig: NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
    LbaRangeType: NVME_CDW11_FEATURE_LBA_RANGE_TYPE
    Arbitration: NVME_CDW11_FEATURE_ARBITRATION
    VolatileWriteCache: NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
    AsyncEventConfig: NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
    PowerManagement: NVME_CDW11_FEATURE_POWER_MANAGEMENT
    AutoPowerStateTransition: NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
    TemperatureThreshold: NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
    ErrorRecovery: NVME_CDW11_FEATURE_ERROR_RECOVERY
    HostMemoryBuffer: NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
    WriteAtomicityNormal: NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
    NonOperationalPowerState: NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
    IoCommandSetProfile: NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
    ErrorInjection: NVME_CDW0_FEATURE_ERROR_INJECTION
    HostIdentifier: NVME_CDW11_FEATURE_HOST_IDENTIFIER
    ReservationPersistence: NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
    ReservationNotificationMask: NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
    GetHostMetadata: NVME_CDW11_FEATURE_GET_HOST_METADATA
    SetHostMetadata: NVME_CDW11_FEATURE_SET_HOST_METADATA
    AsUlong: uint32
struct NVME_CDW11_FEATURE_NUMBER_OF_QUEUES
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_INTERRUPT_COALESCING
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_LBA_RANGE_TYPE
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_ARBITRATION
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_POWER_MANAGEMENT
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_ERROR_RECOVERY
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW0_FEATURE_ERROR_INJECTION
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_HOST_IDENTIFIER
{
    uint _bitfield;
}

struct NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
{
    uint _bitfield;
}

struct NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
{
    uint _bitfield;
}

struct NVME_CDW11_FEATURE_GET_HOST_METADATA
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURE_SET_HOST_METADATA
{
    _Anonymous_e__Struct Anonymous;
    uint AsUlong;
}

struct NVME_CDW11_FEATURES
{
    NVME_CDW11_FEATURE_NUMBER_OF_QUEUES NumberOfQueues;
    NVME_CDW11_FEATURE_INTERRUPT_COALESCING InterruptCoalescing;
    NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG InterruptVectorConfig;
    NVME_CDW11_FEATURE_LBA_RANGE_TYPE LbaRangeType;
    NVME_CDW11_FEATURE_ARBITRATION Arbitration;
    NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE VolatileWriteCache;
    NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG AsyncEventConfig;
    NVME_CDW11_FEATURE_POWER_MANAGEMENT PowerManagement;
    NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION AutoPowerStateTransition;
    NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD TemperatureThreshold;
    NVME_CDW11_FEATURE_ERROR_RECOVERY ErrorRecovery;
    NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER HostMemoryBuffer;
    NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL WriteAtomicityNormal;
    NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE NonOperationalPowerState;
    NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE IoCommandSetProfile;
    NVME_CDW0_FEATURE_ERROR_INJECTION ErrorInjection;
    NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier;
    NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence;
    NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask;
    NVME_CDW11_FEATURE_GET_HOST_METADATA GetHostMetadata;
    NVME_CDW11_FEATURE_SET_HOST_METADATA SetHostMetadata;
    uint AsUlong;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NVME_CDW11_FEATURES サイズ: 4 バイト(x64)
dim st, 1    ; 4byte整数×1(構造体サイズ 4 / 4 切り上げ)
; NumberOfQueues : NVME_CDW11_FEATURE_NUMBER_OF_QUEUES (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; InterruptCoalescing : NVME_CDW11_FEATURE_INTERRUPT_COALESCING (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; InterruptVectorConfig : NVME_CDW11_FEATURE_INTERRUPT_VECTOR_CONFIG (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; LbaRangeType : NVME_CDW11_FEATURE_LBA_RANGE_TYPE (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; Arbitration : NVME_CDW11_FEATURE_ARBITRATION (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; VolatileWriteCache : NVME_CDW11_FEATURE_VOLATILE_WRITE_CACHE (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; AsyncEventConfig : NVME_CDW11_FEATURE_ASYNC_EVENT_CONFIG (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; PowerManagement : NVME_CDW11_FEATURE_POWER_MANAGEMENT (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; AutoPowerStateTransition : NVME_CDW11_FEATURE_AUTO_POWER_STATE_TRANSITION (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; TemperatureThreshold : NVME_CDW11_FEATURE_TEMPERATURE_THRESHOLD (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; ErrorRecovery : NVME_CDW11_FEATURE_ERROR_RECOVERY (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; HostMemoryBuffer : NVME_CDW11_FEATURE_HOST_MEMORY_BUFFER (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; WriteAtomicityNormal : NVME_CDW11_FEATURE_WRITE_ATOMICITY_NORMAL (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; NonOperationalPowerState : NVME_CDW11_FEATURE_NON_OPERATIONAL_POWER_STATE (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; IoCommandSetProfile : NVME_CDW11_FEATURE_IO_COMMAND_SET_PROFILE (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; ErrorInjection : NVME_CDW0_FEATURE_ERROR_INJECTION (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; HostIdentifier : NVME_CDW11_FEATURE_HOST_IDENTIFIER (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; ReservationPersistence : NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; ReservationNotificationMask : NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; GetHostMetadata : NVME_CDW11_FEATURE_GET_HOST_METADATA (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; SetHostMetadata : NVME_CDW11_FEATURE_SET_HOST_METADATA (+0, 4byte)  varptr(st)+0 を基点に操作(4byte:入れ子/配列)
; AsUlong : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global NVME_CDW11_FEATURE_HOST_IDENTIFIER
    #field int _bitfield
#endstruct

#defstruct global NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE
    #field int _bitfield
#endstruct

#defstruct global NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK
    #field int _bitfield
#endstruct

#defstruct global NVME_CDW11_FEATURES
    #field byte NumberOfQueues 4
    #field byte InterruptCoalescing 4
    #field byte InterruptVectorConfig 4
    #field byte LbaRangeType 4
    #field byte Arbitration 4
    #field byte VolatileWriteCache 4
    #field byte AsyncEventConfig 4
    #field byte PowerManagement 4
    #field byte AutoPowerStateTransition 4
    #field byte TemperatureThreshold 4
    #field byte ErrorRecovery 4
    #field byte HostMemoryBuffer 4
    #field byte WriteAtomicityNormal 4
    #field byte NonOperationalPowerState 4
    #field byte IoCommandSetProfile 4
    #field byte ErrorInjection 4
    #field NVME_CDW11_FEATURE_HOST_IDENTIFIER HostIdentifier
    #field NVME_CDW11_FEATURE_RESERVATION_PERSISTENCE ReservationPersistence
    #field NVME_CDW11_FEATURE_RESERVATION_NOTIFICATION_MASK ReservationNotificationMask
    #field byte GetHostMetadata 4
    #field byte SetHostMetadata 4
    #field int AsUlong
#endstruct

stdim st, NVME_CDW11_FEATURES        ; NSTRUCT 変数を確保
st->AsUlong = 100
mes "AsUlong=" + st->AsUlong
; ※union フィールドは byte 列で確保(NSTRUCT は union 非対応)。必要に応じ手動でアクセス。