Click here to Skip to main content
15,904,416 members
Home / Discussions / C#
   

C#

 
AnswerRe: Reading USB Tilt Pin
Dave Kreskowiak16-Mar-21 3:46
mveDave Kreskowiak16-Mar-21 3:46 
QuestionIs there a way to open firefox driver in mobile emulation mode in selenium c# MSTest Pin
Member 1485915115-Mar-21 19:55
Member 1485915115-Mar-21 19:55 
AnswerRe: Is there a way to open firefox driver in mobile emulation mode in selenium c# MSTest Pin
Richard Deeming15-Mar-21 22:37
mveRichard Deeming15-Mar-21 22:37 
QuestionIIS application pool Hangs for Webservice developed in C# Pin
Member 1510093115-Mar-21 10:36
Member 1510093115-Mar-21 10:36 
QuestionExpand/Collapse TreeView Nodes on Ctrl+LeftMouse in WPF Pin
ernie_hudds12-Mar-21 2:55
ernie_hudds12-Mar-21 2:55 
AnswerRe: Expand/Collapse TreeView Nodes on Ctrl+LeftMouse in WPF Pin
OriginalGriff12-Mar-21 4:17
mveOriginalGriff12-Mar-21 4:17 
Question.NET native vs. custom localization Pin
Niemand2510-Mar-21 23:18
professionalNiemand2510-Mar-21 23:18 
AnswerRe: .NET native vs. custom localization Pin
Gerry Schmitz11-Mar-21 7:20
mveGerry Schmitz11-Mar-21 7:20 
AnswerRe: .NET native vs. custom localization Pin
lmoelleb15-Mar-21 22:40
lmoelleb15-Mar-21 22:40 
QuestionContinue program after encountering error Pin
Member 1447460710-Mar-21 10:05
Member 1447460710-Mar-21 10:05 
AnswerRe: Continue program after encountering error Pin
Dave Kreskowiak10-Mar-21 10:14
mveDave Kreskowiak10-Mar-21 10:14 
GeneralRe: Continue program after encountering error Pin
Member 1447460710-Mar-21 10:35
Member 1447460710-Mar-21 10:35 
GeneralRe: Continue program after encountering error Pin
Dave Kreskowiak10-Mar-21 11:05
mveDave Kreskowiak10-Mar-21 11:05 
GeneralRe: Continue program after encountering error Pin
Gerry Schmitz11-Mar-21 7:23
mveGerry Schmitz11-Mar-21 7:23 
AnswerRe: Continue program after encountering error Pin
NotTodayYo10-Mar-21 10:52
NotTodayYo10-Mar-21 10:52 
AnswerRe: Continue program after encountering error Pin
Eddy Vluggen10-Mar-21 11:24
professionalEddy Vluggen10-Mar-21 11:24 
AnswerRe: Continue program after encountering error Pin
OriginalGriff10-Mar-21 21:17
mveOriginalGriff10-Mar-21 21:17 
QuestionHow to pass an array or structs to DeviceIoControl when using pinvoke Pin
BobZscharnagk7-Mar-21 22:13
BobZscharnagk7-Mar-21 22:13 
AnswerRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
Randor 8-Mar-21 11:50
professional Randor 8-Mar-21 11:50 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
Gerry Schmitz9-Mar-21 8:16
mveGerry Schmitz9-Mar-21 8:16 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
Randor 9-Mar-21 10:24
professional Randor 9-Mar-21 10:24 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
BobZscharnagk10-Mar-21 14:09
BobZscharnagk10-Mar-21 14:09 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
Randor 10-Mar-21 16:54
professional Randor 10-Mar-21 16:54 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
BobZscharnagk10-Mar-21 19:30
BobZscharnagk10-Mar-21 19:30 
GeneralRe: How to pass an array or structs to DeviceIoControl when using pinvoke Pin
BobZscharnagk10-Mar-21 22:40
BobZscharnagk10-Mar-21 22:40 
Finally got it working....

public static int GetSparseRange(SafeFileHandle hdrive, in FILE_ALLOCATED_RANGE_BUFFER query, ref FILE_ALLOCATED_RANGE_BUFFER[] response, out int count)
{
    int nInBufferSize = Marshal.SizeOf(typeof(FILE_ALLOCATED_RANGE_BUFFER));
    IntPtr lpInBuffer = Marshal.AllocHGlobal(nInBufferSize);
    Marshal.StructureToPtr(query, lpInBuffer, false);

    uint bytesreturned = 0, command = (uint)EIOControlCode.FsctlQueryAllocatedRanges;

    int nOutBufferSize = nInBufferSize * 1024;
    IntPtr lpOutBuffer = Marshal.AllocHGlobal(nOutBufferSize);
    DeviceIoControl(
        hdrive,                                                     // device to be queried
        (uint)command,                                              // operation to perform
        lpInBuffer, (uint)nInBufferSize,                            // input buffer
        lpOutBuffer, (uint)nOutBufferSize,
        //ptrArr, (uint)(nInBufferSize * count),                    // output buffer
        out bytesreturned,                                          // # bytes returned
        IntPtr.Zero);                                               // synchronous I/O
    // Get the last error and display it.
    int rc = Marshal.GetLastWin32Error();
    count = (int)bytesreturned / nInBufferSize;
    for (int j = 0; j < count; ++j)
    {
        response[j] = (FILE_ALLOCATED_RANGE_BUFFER)Marshal.PtrToStructure(lpOutBuffer + (j * nInBufferSize), typeof(FILE_ALLOCATED_RANGE_BUFFER));
    }
    Marshal.FreeHGlobal(lpInBuffer);
    Marshal.FreeHGlobal(lpOutBuffer);
    return rc;
}

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.