gpt4 book ai didi

WinAPI - 如何解释位掩码 0 (LMShare.h/STYPE_DISKTREE)?

转载 作者:行者123 更新时间:2023-12-04 06:07:03 25 4
gpt4 key购买 nike

我正在使用 NetShareEnum function在 Windows API 中。它可以返回 SHARE_INFO_2 structure .该结构包含 shi2_type成员,它被定义为“指定共享资源类型的标志位掩码”。位掩码的值在 LMSHare.h 中定义

#define STYPE_DISKTREE       0    // Disk drive.
#define STYPE_PRINTQ 1 // Print queue.
#define STYPE_DEVICE 2 // Communication device.
#define STYPE_IPC 3 // Interprocess communication (IPC).

不知道怎么解释 STYPE_DISKTREE .由于它是零位掩码,我不能在掩码上使用按位 AND 并将其与掩码进行比较以查看它是否已设置。那是,
(shi2_type & STYPE_DISKTREE) == STYPE_DISKTREE

永远是真的。这是否意味着所有共享本质上都是磁盘共享?或者,我应该将此作为一个特殊情况并使用以下比较来检查共享是否为磁盘共享,
shi2_type == STYPE_DISKTREE

也就是说,磁盘共享仅是磁盘共享,仅此而已。

最佳答案

来自 documentation :

A bitmask of flags that specify the type of the shared resource. Calls to the NetShareSetInfo function ignore this member.

One of the following flags may be specified.

STYPE_DISKTREE

STYPE_PRINTQ

STYPE_DEVICE

STYPE_IPC

In addition, one or both of the following flags may be specified.

STYPE_SPECIAL

STYPE_TEMPORARY


因此 shi2_type 的低部分将是 DISKTREE、PRINTQ、DEVICE 或 IPC 之一,高部分可能包含 SPECIAL 和/或 TEMPORARY。遗憾的是,文档并没有明确说明部件的大小,但由于只有 4 种类型,因此您只能取低字节。您也可以删除高字节,因为这是定义 2 个标志的地方。

关于WinAPI - 如何解释位掩码 0 (LMShare.h/STYPE_DISKTREE)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com