Exemple #1
0
        public void Dhcpv6RequestParamsTest()
        {
            using var pparam = new SafeCoTaskMemStruct <DHCPV6CAPI_PARAMS>(new DHCPV6CAPI_PARAMS { OptionId = DHCPV6_OPTION_ID.DHCPV6_OPTION_CLIENTID });
            var recdParams = new DHCPV6CAPI_PARAMS_ARRAY {
                nParams = 1, Params = pparam
            };
            uint sz = 1000;

            using var mem = new SafeCoTaskMemHandle(sz);
            Assert.That(Dhcpv6RequestParams(false, default, DhcpTests.adp.Id, IntPtr.Zero, recdParams, mem, ref sz), ResultIs.Successful);
Exemple #2
0
        public void DhcpRequestParamsTest()
        {
            var sendParams = default(DHCPCAPI_PARAMS_ARRAY);

            using var pparam = new SafeCoTaskMemStruct <DHCPAPI_PARAMS>(new DHCPAPI_PARAMS { OptionId = DHCP_OPTION_ID.OPTION_SUBNET_MASK });
            //using var pparam = new SafeCoTaskMemStruct<DHCPAPI_PARAMS>(new DHCPAPI_PARAMS { OptionId = DHCP_OPTION_ID.OPTION_HOST_NAME });
            var reqParams = new DHCPCAPI_PARAMS_ARRAY {
                nParams = 1, Params = pparam
            };
            uint sz = 1000;

            using var mem = new SafeCoTaskMemHandle(sz);
            Assert.That(DhcpRequestParams(DHCPCAPI_REQUEST.DHCPCAPI_REQUEST_SYNCHRONOUS, default, adp.Id, IntPtr.Zero, sendParams, reqParams, mem, ref sz, null), ResultIs.Successful);
Exemple #3
0
 public void GetStorageDependencyInformationTest()
 {
     try
     {
         using var handle = Kernel32.CreateFile(@"\\.\PhysicalDrive2", Kernel32.FileAccess.GENERIC_READ, System.IO.FileShare.ReadWrite, default, System.IO.FileMode.Open, FileFlagsAndAttributes.FILE_ATTRIBUTE_NORMAL | FileFlagsAndAttributes.FILE_FLAG_BACKUP_SEMANTICS);
         Assert.That(handle, ResultIs.ValidHandle);
         using var mem = new SafeCoTaskMemStruct <STORAGE_DEPENDENCY_INFO>(new STORAGE_DEPENDENCY_INFO { Version = STORAGE_DEPENDENCY_INFO_VERSION.STORAGE_DEPENDENCY_INFO_VERSION_2 });
         var flags = GET_STORAGE_DEPENDENCY_FLAG.GET_STORAGE_DEPENDENCY_FLAG_HOST_VOLUMES | GET_STORAGE_DEPENDENCY_FLAG.GET_STORAGE_DEPENDENCY_FLAG_DISK_HANDLE;
         var err   = GetStorageDependencyInformation(handle.DangerousGetHandle(), flags, mem.Size, mem, out var sz);
         if (err == Win32Error.ERROR_INSUFFICIENT_BUFFER)
         {
             mem.Size = sz;
             err      = GetStorageDependencyInformation(handle.DangerousGetHandle(), flags, mem.Size, mem, out sz);
         }
         err.ThrowIfFailed();
         mem.AsRef().Entries.WriteValues();
     }
     finally
     {
         //System.IO.File.Delete(tmpfn);
     }
 }
Exemple #4
0
        //********************************************************************************************
        // Function: DrtEventCallback
        //
        // Description: Callback to handle general DRT Events.
        // These include registration state changes, leafset changes, and status changes.
        //
        //********************************************************************************************
        private static void DrtEventCallback(IntPtr Param, bool TimedOut)
        {
            HRESULT hr;
            var     Drt = GetCtx(Param);

            hr = DrtGetEventDataSize(Drt.hDrt, out var ulDrtEventDataLen);
            if (hr.Failed)
            {
                if (hr != HRESULT.DRT_E_NO_MORE)
                {
                    Console.Write(" DrtGetEventDataSize failed: {0}\n", hr);
                }
                goto Cleanup;
            }

            using (var pEventData = new SafeCoTaskMemStruct <DRT_EVENT_DATA>(ulDrtEventDataLen))
            {
                if (pEventData.IsInvalid)
                {
                    Console.Write(" Out of memory\n");
                    goto Cleanup;
                }

                hr = DrtGetEventData(Drt.hDrt, ulDrtEventDataLen, pEventData);
                if (hr.Failed)
                {
                    if (hr != HRESULT.DRT_E_NO_MORE)
                    {
                        Console.Write(" DrtGetEventData failed: {0}\n", hr);
                    }
                    goto Cleanup;
                }

                switch (pEventData.Value.type)
                {
                case DRT_EVENT_TYPE.DRT_EVENT_STATUS_CHANGED:
                    switch (pEventData.Value.union.statusChange.status)
                    {
                    case DRT_STATUS.DRT_ACTIVE:
                        SetConsoleTitle("DrtSdkSample Current Drt Status: Active");
                        if (g_DisplayEvents)
                        {
                            Console.Write(" DRT Status Changed to Active\n");
                        }
                        break;

                    case DRT_STATUS.DRT_ALONE:
                        SetConsoleTitle("DrtSdkSample Current Drt Status: Alone");
                        if (g_DisplayEvents)
                        {
                            Console.Write(" DRT Status Changed to Alone\n");
                        }
                        break;

                    case DRT_STATUS.DRT_NO_NETWORK:
                        SetConsoleTitle("DrtSdkSample Current Drt Status: No Network");
                        if (g_DisplayEvents)
                        {
                            Console.Write(" DRT Status Changed to No Network\n");
                        }
                        break;

                    case DRT_STATUS.DRT_FAULTED:
                        SetConsoleTitle("DrtSdkSample Current Drt Status: Faulted");
                        if (g_DisplayEvents)
                        {
                            Console.Write(" DRT Status Changed to Faulted\n");
                        }
                        break;
                    }

                    break;

                case DRT_EVENT_TYPE.DRT_EVENT_LEAFSET_KEY_CHANGED:
                    if (g_DisplayEvents)
                    {
                        switch (pEventData.Value.union.leafsetKeyChange.change)
                        {
                        case DRT_LEAFSET_KEY_CHANGE_TYPE.DRT_LEAFSET_KEY_ADDED:
                            Console.Write(" Leafset Key Added Event: {0}\n", pEventData.Value.hr);
                            break;

                        case DRT_LEAFSET_KEY_CHANGE_TYPE.DRT_LEAFSET_KEY_DELETED:
                            Console.Write(" Leafset Key Deleted Event: {0}\n", pEventData.Value.hr);
                            break;
                        }
                    }

                    break;

                case DRT_EVENT_TYPE.DRT_EVENT_REGISTRATION_STATE_CHANGED:
                    if (g_DisplayEvents)
                    {
                        Console.Write(" Registration State Changed Event: [hr: 0x%x, registration state: %i]\n", pEventData.Value.hr, pEventData.Value.union.registrationStateChange.state);
                    }
                    break;
                }
            }
Cleanup:
            return;
        }
Exemple #5
0
 private static void InitDefaultLF(out SafeCoTaskMemStruct <LOGFONT> plf)
 {
     using SafeHDC hdc = GetDC(default);