#pragma autorecover
#pragma namespace ( "\\\\.\\ROOT\\Microsoft\\Windows")
[NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x23;;;AU)")]
Instance of __Namespace
{
Name = "SMB";
};

#pragma namespace ( "\\\\.\\ROOT\\Microsoft\\Windows\\Smb")

Instance of __Win32Provider as $prov
{
 Name = "smbwmiv2";
 ClsId = "{3B873591-9427-4418-A086-79175735738F}";
 ImpersonationLevel = 1;
 HostingModel = "NetworkServiceHost";
 version=0x40000001;
};

Instance of __MethodProviderRegistration
{
 Provider = $prov;
};

Instance of __EventProviderRegistration
{
 Provider = $prov;
 eventQueryList = {"select * from MSFT_SmbShareChangeEvent"};
};

Instance of __InstanceProviderRegistration
{
 Provider = $prov;

 supportsGet = TRUE;
 supportsPut = TRUE;
 supportsDelete = TRUE;
 supportsEnumeration = TRUE;
 QuerySupportLevels = {"WQL:UnarySelect"};
};

[ClassVersion("7"): Amended, Description("33"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbClientConfiguration
{
	[read: ToSubClass, write: ToSubClass] uint32 ConnectionCountPerRssNetworkInterface;
	[read: ToSubClass, write: ToSubClass] uint32 DirectoryCacheEntriesMax;
	[read: ToSubClass, write: ToSubClass] uint32 DirectoryCacheEntrySizeMax;
	[read: ToSubClass, write: ToSubClass] uint32 DirectoryCacheLifetime;
	[read: ToSubClass, write: ToSubClass] boolean EnableBandwidthThrottling;
	[read: ToSubClass, write: ToSubClass] boolean EnableByteRangeLockingOnReadOnlyFiles;
	[read: ToSubClass, write: ToSubClass] boolean EnableLargeMtu;
	[read: ToSubClass, write: ToSubClass] boolean EnableMultiChannel;
	[read: ToSubClass, write: ToSubClass] uint32 DormantFileLimit;
	[read: ToSubClass, write: ToSubClass] boolean EnableSecuritySignature;
	[read: ToSubClass, write: ToSubClass] uint32 ExtendedSessionTimeout;
	[read: ToSubClass, write: ToSubClass] uint32 FileInfoCacheEntriesMax;
	[read: ToSubClass, write: ToSubClass] uint32 FileInfoCacheLifetime;
	[read: ToSubClass, write: ToSubClass] uint32 FileNotFoundCacheEntriesMax;
	[read: ToSubClass, write: ToSubClass] uint32 FileNotFoundCacheLifetime;
	[read: ToSubClass, write: ToSubClass] uint32 KeepConn;
	[read: ToSubClass, write: ToSubClass] uint32 MaxCmds;
	[read: ToSubClass, write: ToSubClass] uint32 MaximumConnectionCountPerServer;
	[read: ToSubClass, write: ToSubClass] boolean OplocksDisabled;
	[read: ToSubClass, write: ToSubClass] boolean RequireSecuritySignature;
	[read: ToSubClass, write: ToSubClass] uint32 SessionTimeout;
	[read: ToSubClass, write: ToSubClass] boolean UseOpportunisticLocking;
	[read: ToSubClass, write: ToSubClass] uint32 WindowSizeThreshold;
	[implemented, static: DisableOverride ToSubClass] uint32 GetConfiguration([Out, EmbeddedInstance("MSFT_SmbClientConfiguration"): ToSubClass] MSFT_SmbClientConfiguration Output);
	[implemented, static: DisableOverride ToSubClass] uint32 SetConfiguration([In] uint32 ConnectionCountPerRssNetworkInterface, [In] uint32 DirectoryCacheEntriesMax, [In] uint32 DirectoryCacheEntrySizeMax, [In] uint32 DirectoryCacheLifetime, [In] boolean EnableBandwidthThrottling, [In] boolean EnableByteRangeLockingOnReadOnlyFiles, [In] boolean EnableLargeMtu, [In] boolean EnableMultiChannel, [In] uint32 DormantFileLimit, [In] boolean EnableSecuritySignature, [In] uint32 ExtendedSessionTimeout, [In] uint32 FileInfoCacheEntriesMax, [In] uint32 FileInfoCacheLifetime, [In] uint32 FileNotFoundCacheEntriesMax, [In] uint32 FileNotFoundCacheLifetime, [In] uint32 KeepConn, [In] uint32 MaxCmds, [In] uint32 MaximumConnectionCountPerServer, [In] boolean OplocksDisabled, [In] boolean RequireSecuritySignature, [In] uint32 SessionTimeout, [In] boolean UseOpportunisticLocking, [In] uint32 WindowSizeThreshold);
};
[ClassVersion("7"): Amended, Description("42"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbClientNetworkInterface
{
	[key, read: ToSubClass] uint32 InterfaceIndex;
	[read: ToSubClass] string IpAddresses[];
	[read: ToSubClass] string FriendlyName;
	[read: ToSubClass] uint64 LinkSpeed;
	[read: ToSubClass] boolean RdmaCapable;
	[read: ToSubClass] boolean RssCapable;
};
[ClassVersion("7"): Amended, Description("49"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbConnection
{
	[key, read: ToSubClass] string ServerName;
	[key, read: ToSubClass] string ShareName;
	[key, read: ToSubClass] string UserName;
	[read: ToSubClass] string Credential;
	[read: ToSubClass] uint64 NumOpens;
	[read: ToSubClass] string Dialect;
	[read: ToSubClass] boolean ContinuouslyAvailable;
	[read: ToSubClass] boolean Encrypted;
};
[ClassVersion("7"): Amended, Description("41"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbMapping
{
	[key, read: ToSubClass] string LocalPath;
	[key, read: ToSubClass] string RemotePath;
	[ValueMap{"0", "1", "2", "3", "4", "5", "6"}: ToSubClass, Values{"34", "35", "36", "37", "38", "39", "40"}: ToSubClass Amended, read: ToSubClass] uint32 Status;
	[implemented] uint32 Remove([In] boolean UpdateProfile, [In] boolean Force);
	[implemented, static: DisableOverride ToSubClass] uint32 Create([In] string LocalPath, [In] string RemotePath, [In] string UserName, [In] string Password, [In] boolean Persistent, [In] boolean SaveCredentials, [In] boolean HomeFolder, [Out, EmbeddedInstance("MSFT_SmbMapping"): ToSubClass] MSFT_SmbMapping CreatedMapping);
};
[ClassVersion("7"): Amended, Description("43"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbMultichannelConnection
{
	[key, read: ToSubClass] string ServerName;
	[key, read: ToSubClass] uint32 ClientInterfaceIndex;
	[key, read: ToSubClass] uint32 ServerInterfaceIndex;
	[key, read: ToSubClass] string ServerIpAddress;
	[read: ToSubClass] string ClientIpAddress;
	[read: ToSubClass] string ClientInterfaceFriendlyName;
	[read: ToSubClass] boolean Selected;
	[read: ToSubClass] boolean ClientRSSCapable;
	[read: ToSubClass] boolean ServerRSSCapable;
	[read: ToSubClass] boolean ClientRdmaCapable;
	[read: ToSubClass] boolean ServerRdmaCapable;
	[read: ToSubClass] uint64 ClientLinkSpeed;
	[read: ToSubClass] uint64 ServerLinkSpeed;
	[read: ToSubClass] uint32 MaxChannels;
	[read: ToSubClass] uint32 CurrentChannels;
	[read: ToSubClass] boolean Failed;
	[read: ToSubClass] uint32 FailureCount;
	[implemented, static: DisableOverride ToSubClass] uint32 Refresh([In] string ServerName);
};
[ClassVersion("7"): Amended, Description("50"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbMultichannelConstraint
{
	[key, read: ToSubClass] string ServerName;
	[key, read: ToSubClass] string InterfaceGuid;
	[read: ToSubClass] uint32 InterfaceIndex;
	[read: ToSubClass] string InterfaceAlias;
	[implemented, static: DisableOverride ToSubClass] uint32 CreateConstraint([In] string ServerName, [In] uint32 InterfaceIndex[], [In] string InterfaceAlias[], [Out, EmbeddedInstance("MSFT_SmbMultichannelConstraint"): ToSubClass] MSFT_SmbMultichannelConstraint Output[]);
};
[ClassVersion("7"): Amended, Description("31"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbOpenFile
{
	[key, read: ToSubClass] uint64 FileId;
	[read: ToSubClass] uint64 SessionId;
	[read: ToSubClass] string ScopeName;
	[read: ToSubClass] string ClusterNodeName;
	[read: ToSubClass] string Path;
	[read: ToSubClass] string ShareRelativePath;
	[read: ToSubClass] string ClientComputerName;
	[read: ToSubClass] string ClientUserName;
	[read: ToSubClass] uint32 Permissions;
	[read: ToSubClass] uint32 Locks;
	[read: ToSubClass] boolean ContinuouslyAvailable;
	[read: ToSubClass] boolean Encrypted;
	[implemented] uint32 ForceClose();
};
[ClassVersion("7"): Amended, Description("32"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbServerConfiguration
{
	[read: ToSubClass, write: ToSubClass] boolean AnnounceServer;
	[read: ToSubClass, write: ToSubClass] uint32 AsynchronousCredits;
	[read: ToSubClass, write: ToSubClass] boolean AutoShareServer;
	[read: ToSubClass, write: ToSubClass] boolean AutoShareWorkstation;
	[read: ToSubClass, write: ToSubClass] uint32 CachedOpenLimit;
	[read: ToSubClass, write: ToSubClass] string AnnounceComment;
	[read: ToSubClass, write: ToSubClass] boolean EnableDownlevelTimewarp;
	[read: ToSubClass, write: ToSubClass] boolean EnableLeasing;
	[read: ToSubClass, write: ToSubClass] boolean EnableMultiChannel;
	[read: ToSubClass, write: ToSubClass] boolean EnableStrictNameChecking;
	[read: ToSubClass, write: ToSubClass] uint32 AutoDisconnectTimeout;
	[read: ToSubClass, write: ToSubClass] uint32 DurableHandleV2TimeoutInSeconds;
	[read: ToSubClass, write: ToSubClass] boolean EnableAuthenticateUserSharing;
	[read: ToSubClass, write: ToSubClass] boolean EnableForcedLogoff;
	[read: ToSubClass, write: ToSubClass] boolean EnableOplocks;
	[read: ToSubClass, write: ToSubClass] boolean EnableSecuritySignature;
	[read: ToSubClass, write: ToSubClass] boolean ServerHidden;
	[read: ToSubClass, write: ToSubClass] uint32 IrpStackSize;
	[read: ToSubClass, write: ToSubClass] uint32 KeepAliveTime;
	[read: ToSubClass, write: ToSubClass] uint32 MaxChannelPerSession;
	[read: ToSubClass, write: ToSubClass] uint32 MaxMpxCount;
	[read: ToSubClass, write: ToSubClass] uint32 MaxSessionPerConnection;
	[read: ToSubClass, write: ToSubClass] uint32 MaxThreadsPerQueue;
	[read: ToSubClass, write: ToSubClass] uint32 MaxWorkItems;
	[read: ToSubClass, write: ToSubClass] string NullSessionPipes;
	[read: ToSubClass, write: ToSubClass] string NullSessionShares;
	[read: ToSubClass, write: ToSubClass] uint32 OplockBreakWait;
	[read: ToSubClass, write: ToSubClass] uint32 PendingClientTimeoutInSeconds;
	[read: ToSubClass, write: ToSubClass] boolean RequireSecuritySignature;
	[read: ToSubClass, write: ToSubClass] boolean EnableSMB1Protocol;
	[read: ToSubClass, write: ToSubClass] boolean EnableSMB2Protocol;
	[read: ToSubClass, write: ToSubClass] uint32 Smb2CreditsMax;
	[read: ToSubClass, write: ToSubClass] uint32 Smb2CreditsMin;
	[read: ToSubClass, write: ToSubClass] uint32 SmbServerNameHardeningLevel;
	[read: ToSubClass, write: ToSubClass] boolean TreatHostAsStableStorage;
	[read: ToSubClass, write: ToSubClass] boolean ValidateAliasNotCircular;
	[read: ToSubClass, write: ToSubClass] boolean ValidateShareScope;
	[read: ToSubClass, write: ToSubClass] boolean ValidateShareScopeNotAliased;
	[read: ToSubClass, write: ToSubClass] boolean ValidateTargetName;
	[read: ToSubClass, write: ToSubClass] boolean EncryptData;
	[read: ToSubClass, write: ToSubClass] boolean RejectUnencryptedAccess;
	[implemented, static: DisableOverride ToSubClass] uint32 GetConfiguration([Out, EmbeddedInstance("MSFT_SmbServerConfiguration"): ToSubClass] MSFT_SmbServerConfiguration Output);
	[implemented, static: DisableOverride ToSubClass] uint32 SetConfiguration([In] boolean AnnounceServer, [In] uint32 AsynchronousCredits, [In] boolean AutoShareServer, [In] boolean AutoShareWorkstation, [In] uint32 CachedOpenLimit, [In] string AnnounceComment, [In] boolean EnableDownlevelTimewarp, [In] boolean EnableLeasing, [In] boolean EnableMultiChannel, [In] boolean EnableStrictNameChecking, [In] uint32 AutoDisconnectTimeout, [In] uint32 DurableHandleV2TimeoutInSeconds, [In] boolean EnableAuthenticateUserSharing, [In] boolean EnableForcedLogoff, [In] boolean EnableOplocks, [In] boolean EnableSecuritySignature, [In] boolean ServerHidden, [In] uint32 IrpStackSize, [In] uint32 KeepAliveTime, [In] uint32 MaxChannelPerSession, [In] uint32 MaxMpxCount, [In] uint32 MaxSessionPerConnection, [In] uint32 MaxThreadsPerQueue, [In] uint32 MaxWorkItems, [In] string NullSessionPipes, [In] string NullSessionShares, [In] uint32 OplockBreakWait, [In] uint32 PendingClientTimeoutInSeconds, [In] boolean RequireSecuritySignature, [In] boolean EnableSMB1Protocol, [In] boolean EnableSMB2Protocol, [In] uint32 Smb2CreditsMax, [In] uint32 Smb2CreditsMin, [In] uint32 SmbServerNameHardeningLevel, [In] boolean TreatHostAsStableStorage, [In] boolean ValidateAliasNotCircular, [In] boolean ValidateShareScope, [In] boolean ValidateShareScopeNotAliased, [In] boolean ValidateTargetName, [In] boolean EncryptData, [In] boolean RejectUnencryptedAccess);
};
[ClassVersion("7"): Amended, Description("44"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbServerNetworkInterface
{
	[key, read: ToSubClass] uint32 InterfaceIndex;
	[key, read: ToSubClass] string ScopeName;
	[key, read: ToSubClass] string IpAddress;
	[read: ToSubClass] string FriendlyName;
	[read: ToSubClass] uint64 LinkSpeed;
	[read: ToSubClass] boolean RdmaCapable;
	[read: ToSubClass] boolean RssCapable;
};
[ClassVersion("7"): Amended, Description("30"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbSession
{
	[key, read: ToSubClass] uint64 SessionId;
	[read: ToSubClass] string ScopeName;
	[read: ToSubClass] string ClusterNodeName;
	[read: ToSubClass] string ClientComputerName;
	[read: ToSubClass] string ClientUserName;
	[read: ToSubClass] uint64 NumOpens;
	[read: ToSubClass] uint32 SecondsIdle;
	[read: ToSubClass] uint32 SecondsExists;
	[read: ToSubClass] string Dialect;
	[read: ToSubClass] string TransportName;
	[implemented] uint32 ForceClose();
};
[ClassVersion("7"): Amended, Description("29"): ToSubClass Amended, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbShare
{
	[key, read: ToSubClass] string Name;
	[key, read: ToSubClass] string ScopeName;
	[read: ToSubClass] boolean Scoped;
	[ValueMap{"0", "1", "2", "3", "4"}: ToSubClass, Values{"9", "10", "11", "12", "13"}: ToSubClass Amended, read: ToSubClass] uint32 ShareType;
	[read: ToSubClass] boolean Special;
	[read: ToSubClass] boolean Temporary;
	[read: ToSubClass] boolean ShadowCopy;
	[read: ToSubClass] string Path;
	[read: ToSubClass] string Volume;
	[read: ToSubClass, write: ToSubClass] string Description;
	[read: ToSubClass, write: ToSubClass] uint32 ConcurrentUserLimit;
	[read: ToSubClass, write: ToSubClass] uint32 CurrentUsers;
	[read: ToSubClass, write: ToSubClass] string SecurityDescriptor;
	[read: ToSubClass, write: ToSubClass] boolean EncryptData;
	[ValueMap{"0", "1"}: ToSubClass, Values{"14", "15"}: ToSubClass Amended, read: ToSubClass, write: ToSubClass] uint32 FolderEnumerationMode;
	[ValueMap{"0", "1", "2", "3", "4", "5"}: ToSubClass, Values{"16", "17", "18", "19", "20", "13"}: ToSubClass Amended, read: ToSubClass, write: ToSubClass] uint32 CachingMode;
	[read: ToSubClass, write: ToSubClass] boolean ContinuouslyAvailable;
	[read: ToSubClass, write: ToSubClass] uint32 CATimeout;
	[ValueMap{"0", "1", "2"}: ToSubClass, Values{"21", "22", "23"}: ToSubClass Amended, read: ToSubClass] uint32 ShareState;
	[ValueMap{"0", "1", "2", "3", "4"}: ToSubClass, Values{"24", "25", "26", "27", "28"}: ToSubClass Amended, read: ToSubClass] uint32 AvailabilityType;
	[implemented, static: DisableOverride ToSubClass] uint32 CreateShare([In] string Name, [In] string ScopeName, [In] string Path, [In] string Description, [In] uint32 ConcurrentUserLimit, [In] uint32 FolderEnumerationMode, [In] uint32 CachingMode, [In] boolean Temporary, [In] boolean ContinuouslyAvailable, [In] uint32 CATimeout, [In] boolean EncryptData, [In] string FullAccess[], [In] string ChangeAccess[], [In] string ReadAccess[], [In] string NoAccess[], [Out, EmbeddedInstance("MSFT_SmbShare"): ToSubClass] MSFT_SmbShare CreatedShare);
	[implemented] uint32 GrantAccess([In] string AccountName[], [In] uint32 AccessRight, [Out, EmbeddedInstance("MSFT_SmbShareAccessControlEntry"): ToSubClass] MSFT_SmbShareAccessControlEntry Output[]);
	[implemented] uint32 RevokeAccess([In] string AccountName[], [Out, EmbeddedInstance("MSFT_SmbShareAccessControlEntry"): ToSubClass] MSFT_SmbShareAccessControlEntry Output[]);
	[implemented] uint32 BlockAccess([In] string AccountName[], [Out, EmbeddedInstance("MSFT_SmbShareAccessControlEntry"): ToSubClass] MSFT_SmbShareAccessControlEntry Output[]);
	[implemented] uint32 UnblockAccess([In] string AccountName[], [Out, EmbeddedInstance("MSFT_SmbShareAccessControlEntry"): ToSubClass] MSFT_SmbShareAccessControlEntry Output[]);
	[implemented] uint32 GetAccessControlEntries([Out, EmbeddedInstance("MSFT_SmbShareAccessControlEntry"): ToSubClass] MSFT_SmbShareAccessControlEntry Output[]);
	[implemented, static: DisableOverride ToSubClass] uint32 EnumerateShares([In] string ScopeName, [In] boolean PopulateVolumeProperty, [Out, Stream: ToSubClass, EmbeddedInstance("MSFT_SmbShare"): ToSubClass] MSFT_SmbShare Output[]);
	[implemented, static: DisableOverride ToSubClass] uint32 GetShare([In] string ScopeName, [In] string ShareName, [In] boolean GetAclNonAdmin, [Out, EmbeddedInstance("MSFT_SmbShare"): ToSubClass] MSFT_SmbShare Output);
	[implemented, static: DisableOverride ToSubClass] uint32 FireShareChangeEvent([In] uint32 EventType, [In] string ScopeName, [In] string ShareName, [In] string Path, [In] string Remark, [In] string SecurityDescriptor, [In] uint32 ShareState, [In] uint32 CATimeout, [In] uint32 Flags, [In] uint32 Type, [In] uint32 ConcurrentUserLimit);
};
[ClassVersion("7"): Amended, Description("8"): ToSubClass Amended]
class MSFT_SmbShareAccessControlEntry
{
	[read: ToSubClass] string Name;
	[read: ToSubClass] string ScopeName;
	[read: ToSubClass] string AccountName;
	[ValueMap{"0", "1"}: ToSubClass, Values{"1", "2"}: ToSubClass Amended, read: ToSubClass] uint32 AccessControlType;
	[ValueMap{"0", "1", "2", "3"}: ToSubClass, Values{"3", "4", "5", "6"}: ToSubClass Amended, read: ToSubClass] uint32 AccessRight;
};
[ClassVersion("7"): Amended, Description("48"): ToSubClass Amended, Indication, dynamic: ToInstance, provider("smbwmiv2"): ToInstance]
class MSFT_SmbShareChangeEvent
{
	[ValueMap{"0", "1", "2"}: ToSubClass, Values{"45", "46", "47"}: ToSubClass Amended] uint32 EventType;
	[EmbeddedInstance("MSFT_SmbShare"): ToSubClass] MSFT_SmbShare Share;
};
